方法一:织梦DdedCMS发布文章同时更新所有单页面的方法
1)功能简介:
这种功能可以实现的是比如:你建立一个新的单页面,用编译器进行编译织梦自带的标签,例如arclist(这样做可以做一个全站的最新更新列表),那么就可以利用这种方法来实现,当我们新发布了一篇文章,就会自动更新首页和全部的单页面文件(即上面说的最近更新列表),达到真正意义上的最近更新,类似于新浪的滚动新闻列表 - 实时更新,让访客一目了然,提高网站的用户粘度;
当然,这种方式还可以实现很多功能,这需要大家去挖掘了。
2)如何实现:
在网站后台目录(默认目录为 /dede)的task_do.php 文件中,找到如下代码:
$GLOBALS['_arclistEnv'] = ‘index’;
$pv->SetTemplet($tpl);
$pv->SaveToHtml($homeFile);
$pv->Close();
在下面一行增加如下代码:
//更新所有的单页面
include_once(DEDEINC."/arc.sgpage.class.php");
$dsql->Execute("ex","Select aid From `dede_sgpage` ");
$i = 0;
while($row = $dsql->GetArray("ex"))
{
$sg = new sgpage($row['aid']);
$sg->SaveToHtml();
$i++;
}
//更新所有的单页面
保存关闭后即可;
要正常使用这个功能,您还必须:
在后台的[系统基本参数]——性能选项中,将“发布文章后马上更新网站主页:”设置为“是”,这样才能保证代码的顺利执行[必须];
在后台的[系统基本参数]——性能选项中,将“arclist标签调用缓存”尽量调小一点[非必须,更新自己的功能选择];
本方法在织梦5.7下测试可用。
知识二:如何让织梦添加的单页文档自动更新
织梦dedecms具有很好的生成HTML功能,在后台主页面中也添加了一键更新功能,不过后台单页面文档的更新,必须在单页文档管理栏目下才能完成,点击一键更新无法更新
下面的教程教您怎么让织梦自定义文档在更新网站时能够自动完成一键更新
站点后台目录文件,默认/dede/ 目录下
找到 makehtml_all.php 文件,打开
大约在144行找到下面的源文件:
else if($step==10)
{
$adminID = $cuserLogin->getUserID();
$mkcachefile = DEDEDATA."/mkall_cache_{$adminID}.php";
@unlink($mkcachefile);
OptimizeData($dsql);
ShowMsg("完成所有文件的更新!","javascript:;");
exit();
}//make step
修改为以下代码后
else if($step==10)
{
$dsql->Execute("ex","SELECT aid FROM `dede_sgpage` ");
$i = 0;
while($row = $dsql->GetArray("ex"))
{
$sg = new sgpage($row['aid']);
$sg->SaveToHtml();
$i++;
}
$adminID = $cuserLogin->getUserID();
$mkcachefile = DEDEDATA."/mkall_cache_{$adminID}.php";
@unlink($mkcachefile);
OptimizeData($dsql);
ShowMsg("完成所有文件的更新!","javascript:;");
exit();
}//make step
通过更改以上代码,既可以使得dedecms的一键更新成为真正意义上的一键更新