php v9发布顺序,Phpcms v9发布文章后栏目只更新前面5页的修改自定义方法

最近一个资讯网站项目中,客户发现Phpcms v9发布文章后栏目为什么只更新了前面几页、后面的都没自动更新,于是找来问为什么、问这是不是PC V9的Bug,实际上这算不上Bug,试想下:栏目页HTML静态化后,如果有1000页,每次修改添加文章就全部更新一遍,岂不是要很多时间?今天CMSYOU在这里与大家探讨下这个问题,分享Phpcms v9发布文章后栏目只更新前面5页的修改自定义方法。

熟悉Phpcms的朋友一般知道,HTML静态化设置后,添加或者修改文章后,会自动更新文章内容页本身、对应栏目列表、以及首页的HTML静态文件index.html。

如果Phpcms v9默认修改添加文章后,在提交页面就更新生成该栏目列表的所有翻页HTML,这样会比较长时间停留在提交后的提示页面,反而会让用户感觉:Phpcms v9怎么这么卡?添加一篇文章提交后都卡半天?!岂不是反而造成不好的体验呢?

本着研究的态度,我们找到了添加修改文章的方法文件:phpcms/model/content_model.class.php,其中有关更新对应栏目页的方法是在223行、325行左右:

//生成静态

if(!$isimport && $data['status']==99) {

//在添加和修改内容处定义了 INDEX_HTML

if(defined('INDEX_HTML')) $html->index();

if(defined('RELATION_HTML')) $html->create_relation_html($catid);

}

从这里可以看出编辑修改文章后,会自动create_relation_html更新相关的html。从而找到对应的函数文件phpcms/modules/content/classes/html.class.php的390行左右:

/**

* 生成相关栏目列表、只生成前5页

* @param $catid

*/

public function create_relation_html($catid) {

for($page = 1; $page < 6; $page++) {

$this->category($catid,$page);

}

//检查当前栏目的父栏目,如果存在则生成

$arrparentid = $this->categorys[$catid]['arrparentid'];

if($arrparentid) {

$arrparentid = explode(',', $arrparentid);

foreach ($arrparentid as $catid) {

if($catid) $this->category($catid,1);

}

}

}

修改上面的代码中的数字6,可以适当改大一些,比如改成101,则是更新生成列表页的前100页,生成HTML的时间上不会太久,这样就可以实现自动更新栏目页的页数了。

今天的分享就到这里,欢迎大家抱着研究的心态自定义Phpcms,多多分享,如果有好的文章也欢迎投稿,投稿email:info@cmsyou.com。

同时欢迎大家收听CMSYOU官方微博,相互探讨Phpcms!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值