欢迎光临
我们一直在努力

DedeCMS后台设置发布文章后马上更新网站主页仍然不更新的解决办法

琢磨了几天,反复替换了程序文件,甚至重装过一次,结果还是没有解决。
在织梦官方论坛中发帖,也没有答复,看来还要自力更生啊,呵呵!
我就想着自己琢磨琢磨相关代码,想起前些天在织梦论坛中看到一篇文章提到了与“发布文章后马上更新网站主页”相关的两个程序文件,记不住是哪两个了,就上论坛又搜索一番,看了一个与我的类似的问题的解决方法。

找到 /dede/task_do.php
在第95行$pv = new PartView(); 下面插入
$GLOBALS[‘_arclistEnv’] = ‘index’;

只要插入这一行就OK了

 

方法一:织梦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标签调用缓存”尽量调小一点[非必须,更新自己的功能选择];

知识二:如何让织梦添加的单页文档自动更新

织梦dedecms具有很好的生成HTML功能,在后台主页面中也添加了一键更新功能,不过后台单页面文档的更新,必须在单页文档管理栏目下才能完成,点击一键更新无法更新下面的教程教您怎么让织梦自定义文档在更新网站时能够自动完成一键更新

站点后台目录文件,默认/dede/ 目录下找到 makehtml_all.php 文件,打开

大约在144行找到下面的源文件:

1.  else if($step==10) 
2.  { 
3.  $adminID = $cuserLogin->getUserID(); 
4.  $mkcachefile = DEDEDATA."/mkall_cache_{$adminID}.php"; 
5.  @unlink($mkcachefile); 
6.  OptimizeData($dsql); 
7.  ShowMsg("完成所有文件的更新!","javascript:;"); 
8.  exit(); 
9.  }//make step 

修改为以下代码后

1.  else if($step==10) 
2.  { 
3.   
4.  include_once(DEDEINC."/arc.sgpage.class.php"); 
5.  $dsql->Execute("ex","SELECT aid FROM `dede_sgpage` "); 
6.  $i = 0; 
7.  while($row = $dsql->GetArray("ex")) 
8.  { 
9.  $sg = new sgpage($row['aid']); 
10. $sg->SaveToHtml(); 
11. $i++; 
12. } 
13.  
14.  
15. $adminID = $cuserLogin->getUserID(); 
16. $mkcachefile = DEDEDATA."/mkall_cache_{$adminID}.php"; 
17. @unlink($mkcachefile); 
18. OptimizeData($dsql); 
19. ShowMsg("完成所有文件的更新!","javascript:;"); 
20. exit(); 
21. }//make step 

 

通过更改以上代码,既可以使得dedecms的一键更新成为真正意义上的一键更新

未经允许不得转载:第五博客 » DedeCMS后台设置发布文章后马上更新网站主页仍然不更新的解决办法
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

更专业 更方便

联系我们