official_website/app/admin/controller/Sitemap.php

117 lines
4.1 KiB
PHP

<?php
namespace app\admin\controller;
use app\common\controller\AdminBase;
use app\common\util\SitemapUtil;
use think\facade\View;
/**
* sitemap地图
*/
class Sitemap extends AdminBase
{
public function index(){
$sitemap = xn_cfg("sitemap");
if($this->request->isAjax()){
$param = $this->request->param();
if(key_exists("filter", $param)){
$sitemap['filter'] = $param['filter'];
}
if(key_exists("sitemap_type", $param)){
$sitemap['sitemap_type'] = $param['sitemap_type'];
}
if(key_exists("frequency", $param)){
$sitemap['frequency'] = $param['frequency'];
}
if(key_exists("level", $param)){
$sitemap['level'] = $param['level'];
}
set_php_arr(config_path('cfg'), 'sitemap.php', $sitemap);
$this->success("操作成功");
}
View::assign("sitemap", $sitemap);
//过滤
$filters = [];
if(!empty($sitemap['filter'])){
$filters = explode(",",$sitemap['filter']);
}
View::assign("filters",$filters);
//sitemap类型
$sitemapTypes = [];
if(!empty($sitemap['sitemap_type'])){
$sitemapTypes = explode(",",$sitemap['sitemap_type']);
}
View::assign("sitemapTypes",$sitemapTypes);
//更新频率
$frequencys = [];
if(!empty($sitemap['frequency'])){
$frequencys = explode(",",$sitemap['frequency']);
}
View::assign("frequencys",$frequencys);
//优先级别
$levels = [];
if(!empty($sitemap['level'])){
$levels = explode(",",$sitemap['level']);
}
View::assign("levels",$levels);
$frequencyList = [
['key'=>'always','text'=>'经常'],
['key'=>'hourly','text'=>'每小时'],
['key'=>'daily','text'=>'每天'],
['key'=>'weekly','text'=>'每周'],
['key'=>'monthly','text'=>'每月'],
['key'=>'yearly','text'=>'每年'],
['key'=>'never','text'=>'从不']
];//更新频率
$levelList = ['0.1','0.2','0.3','0.4','0.5','0.6','0.7','0.8','0.9','1.0'];//优先级别
View::assign("frequencyList",$frequencyList);
View::assign("levelList",$levelList);
//sitemap 网站地图
$view_suffix = config('view.view_suffix');//模型文件后缀
$sitemap = "/app/home/view/sitemap.{$view_suffix}";
$autoSitemap = root_path().'templates/'. $this->template['template']."/". $this->template['html']."/sitemap.{$view_suffix}";
$autoSitemap = replaceSymbol($autoSitemap);
if(file_exists($autoSitemap)){//文件存在的
$sitemap = 'templates/'. $this->template['template']."/". $this->template['html']."/sitemap.{$view_suffix}";
$sitemap = replaceSymbol($sitemap);
}
$cur_lang = $this->getMyLang();
$home_lang = xn_cfg("base.home_lang");//默认语言
if($cur_lang == $home_lang){
$html_url = $this->domain."sitemap.html";
$txt_url = $this->domain."sitemap.txt";
$xml_url = $this->domain."sitemap.xml";
}else{
$html_url = $this->domain.$cur_lang."/sitemap.html";
$txt_url = $this->domain.$cur_lang."/sitemap.txt";
$xml_url = $this->domain.$cur_lang."/sitemap.xml";
}
$sm['html_url'] = $html_url;
$sm['txt_url'] = $txt_url;
$sm['xml_url'] = $xml_url;
View::assign("sm",$sm);
View::assign("sitemap",$sitemap);
return view();
}
/**
* 更新sitemap网站地图
*/
public function handUpdate(){
$type = $this->request->param("type","");
if(empty($type)){
$this->error("缺少更新参数");
}
$sitemapTypes = ['xml','txt','html'];
if(!in_array($type, $sitemapTypes)){
$this->error("更新网站地图参数错误");
}
(new SitemapUtil())->generateSitemap($type, $this->domain, $this->getMyLang());
$this->success("更新成功");
}
}