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