// +----------------------------------------------------------------------
namespace app\admin\controller;
use cmf\controller\AdminBaseController;
use think\Db;
class SitemapController extends AdminBaseController
{
//pc
public function index()
{
$local = $_SERVER['SERVER_NAME'];
$site = 'http://'.$local;
$time = date("Y-m-d",time());
$url = $site."/\r\n";
$xml = '';
$xml .= "";
$xml .= "{$site}";
$xml .= "{$time} ";
$xml .= "daily";
$xml .= "1.0";
$xml .= "";
$category = Db::name('category')->where('status', 1)->order('list_order')->select();
foreach($category as $val)
{
$url .= $site."/xm".$val['enname']."\r\n";
// $html .= ''.$val['name'].''."
";
$xml .="";
$xml .= ''.$site.'/xm'.$val['enname'].'/';
$xml .= "daily";
$xml .= "0.9";
$xml .= "";
}
// $article = Db::name('news')->alias('a')->join('news_category b','a.catid=b.id')->where('a.status',1)->order('a.id desc')->select();
$article = Db::name('news')->field('id,create_time')->where('status',1)->order('id desc')->select();
foreach($article as $value)
{
//dump($value);
$url .= $site."/news".$value['id']."/\r\n";
$xml .= "";
//$html .= ''.$value['post_title'].''."
";
$xml .= ''.$site."/news".$value['id'].'/';
$xml .= "".date('Y-m-d',$value['create_time'])."";
$xml .= "weekly";
$xml .= "0.8";
$xml .= "";
}
$xiangmu = Db::name('jiameng')->field('id,create_time')->order('id desc')->select();
foreach($xiangmu as $pvalue)
{
$portalArticleUrl = trim($site."/b".$pvalue['id']."/"."\r\n");
$xml .= "";
$xml .= ''.$portalArticleUrl.'';
$xml .= "".date('Y-m-d',$pvalue['create_time'])."";
$xml .= "weekly";
$xml .= "0.8";
$xml .= "";
}
$xml .= '';
$this->updatexml($xml);
}
//shouji
public function sitePhoneMap()
{
$local = $_SERVER['SERVER_NAME'];
$local = explode('.', $local);
//dump($local);
if(count($local)==3){
$local = $local[1].'.'.$local[2];
}else{
$local = $local[1].'.'.$local[2].'.'.$local[3];
}
$local = 'm.'.$local;
//dump($local);die;
$site = 'http://'.$local;
$time = date("Y-m-d",time());
$url = $site."/\r\n";
$xml = '';
$xml .= "";
$xml .= "{$site}";
$xml .= "";
$xml .= "{$time} ";
$xml .= "daily";
$xml .= "1.0";
$xml .= "";
$brandCategoryModel = new BrandCategoryModel();
$category = $brandCategoryModel->where('status', 1)->where('delete_time', 0)->select();
foreach($category as $val)
{
$geturl = $this->geturl('brand/List/index?id='.$val['id'].'');
$url .= $site."/".$geturl['url']."\r\n";
// $html .= ''.$val['name'].''."
";
$xml .="";
$xml .= ''.$site.'/'.$geturl['url'].'';
$xml .= "";
$xml .= "daily";
$xml .= "0.9";
$xml .= "";
}
foreach($article as $value)
{
//dump($value);
$url .= $site."/".$value['alias']."/".$value['id'].".html"."\r\n";
$xml .= "";
//$html .= ''.$value['post_title'].''."
";
$xml .= ''.$site."/".$value['alias']."/".$value['id'].'.html';
$xml .= "";
$xml .= "".date('Y-m-d',$value['create_time'])."";
$xml .= "weekly";
$xml .= "0.8";
$xml .= "";
}
//品牌
$portalCategoryModel = new PortalCategoryModel();
$portalCategory = $portalCategoryModel->where('status', 1)->where('delete_time', 0)->select();
foreach($portalCategory as $val)
{
$getPortalUrl = 'xmk/cid/'.$val['id'];
$url .= $site."/".$getPortalUrl."\r\n";
// $html .= ''.$val['name'].''."
";
$xml .="";
$xml .= ''.$site.'/'.$getPortalUrl.'';
$xml .= "";
$xml .= "daily";
$xml .= "0.9";
$xml .= "";
}
$portalPostModel = new PortalPostModel();
$where = [
'a.delete_time' => 0,
'a.post_status' => 1
];
$field = 'a.id,a.create_time,b.category_id,c.alias';
$article = $portalPostModel->alias('a')->field($field)
->join('portal_category_post b','a.id = b.post_id')
->join('portal_category c','b.category_id = c.id')
->where($where)
->order('a.create_time', 'DESC')
->select();
foreach($article as $value)
{
//dump($value);
$url .= $site."/".$value['alias']."/".$value['id'].".html"."\r\n";
$xml .= "";
//$html .= ''.$value['post_title'].''."
";
$xml .= ''.$site."/".$value['alias']."/".$value['id'].'.html';
$xml .= "";
$xml .= "".date('Y-m-d',$value['create_time'])."";
$xml .= "weekly";
$xml .= "0.8";
$xml .= "";
}
$xml .= '';
$this->updatesjxml($xml);
}
//公共
private function geturl($url)
{
// $result = Db::name('route')->where(["full_url"=>$url])->find();
// return $result;
return $url;
}
//pc
private function updatexml($data)
{
$this->writefile('xml',$data);
}
private function writefile($type,$data)
{
//dump($_SERVER['DOCUMENT_ROOT']);die;
$myfile = fopen($_SERVER['DOCUMENT_ROOT']."/sitemap.".$type, "w") or die("Unable to open file!");
fwrite($myfile, $data);
fclose($myfile);
echo 'pc xml地图已生成
'.'点击查看';
}
//手机
private function updatesjxml($data)
{
$this->writesjfile('xml',$data);
}
private function writesjfile($type,$data)
{
//dump($_SERVER['DOCUMENT_ROOT']);die;
$myfile = fopen($_SERVER['DOCUMENT_ROOT']."/sitemaps.".$type, "w") or die("Unable to open file!");
fwrite($myfile, $data);
fclose($myfile);
echo '手机 xml地图已生成
'.'点击查看';
}
}