DEDE自动更新手机版首页、列表页、文章页
有没有什么方法让pc站发布新文章后,手机站可以自动生成新的首页、列表页、内容页呢?或者是定时自动更新。主要针对的是虚拟空间。 展开
请先确保网站已经配置生成手机静态功能。
修改或者覆盖文件之前请备份后台这个文件 \dede\task_do.php(dede表示你的后台目录)
1、后台-系统配置,添加变量
变量名称:cfg_makemobile
变量类型:布尔(Y/N)
参数说明:移动版生成静态文件
变量值:Y
所在组:站点设置
复制
2、\dede\task_do.php 找到
if(is_array($nextRow)){
$envs['aid'] = $nextRow['id'];
$arc = new Archives($nextRow['id']);
$arc->MakeHtml();}
在它的下面加入
//发布文章后自动生成移动版文章页、上一篇下一篇 开始if($cfg_makemobile == 'Y'){
define('DEDEMOB', 'Y');
$arc = new Archives($aid);
$arc->MakeHtml();
if(is_array($preRow))
{
$envs['aid'] = $preRow['id'];
$arc = new Archives($preRow['id']);
$arc->MakeHtml();
}
if(is_array($nextRow))
{
$envs['aid'] = $nextRow['id'];
$arc = new Archives(nextRow['id']);
$arc->MakeHtml();
}}//发布文章后自动生成移动版文章页、上一篇下一篇 结束
继续找到
$pv->SaveToHtml($homeFile);
在它的下面加入
//发布文章后自动生成移动版首页 开始
if($cfg_makemobile == 'Y'){
$templet = str_replace("{style}", $cfg_df_style, $row['templet']);
$templet = str_replace('.htm','_m.htm',$templet);
$homeFile = dirname(__FILE__).'/'.str_replace("../", '../m/',$row['position']);
$homeFile = str_replace("//", "/", str_replace("\\", "/", $homeFile));
$fp = fopen($homeFile, 'w') or die("无法更新移动版主页到:$homeFile 位置");
fclose($fp);
$tpl = $cfg_basedir.$cfg_templets_dir.'/'.$templet;
if(!file_exists($tpl))
{
$tpl = $cfg_basedir.$cfg_templets_dir.'/default/index_m.htm';
if(!file_exists($tpl)) exit("无法找到移动版主页模板:$tpl ");
}
$GLOBALS['_arclistEnv'] = 'index';
$pv->SetTemplet($tpl);
$pv->SaveToHtml($homeFile);}//发布文章后自动生成移动版首页 结束
最后继续找到
require_once(DEDEINC."/arc.listview.class.php");$lv = new ListView($tid);$lv->CountRecord();$lv->MakeHtml();$lv->Close();
在它的下面加入
//发布文章后自动生成移动版列表页 开始
if($cfg_makemobile == 'Y'){
define('DEDEMOB', 'Y');
$lv = new ListView($tid);
$lv->CountRecord();
$lv->MakeHtml();
$lv->Close();}
//发布文章后自动生成移动版列表页 结束
不过有一个问题就是栏目不能自动更新,暂时未找到解决办法。
如果没有启用静态页面(访问的是index.php),更新系统缓存即可。