当前位置: 首页 >
phpcms >  技术文章 > 

phpcms v9更新栏目缓存的一处小bug修复方法

来源 : 转载     时间 : 2021-11-11 10:34:22     浏览 :   

bug的背景:

1、所有栏目内容采取静态页生成;

2、所有栏目采取二级栏目绑定;

3、并非通过后台创建栏目而是直接通过数据库创建栏目记录。

bug的情况:

造成部分栏目页的URL、内容URL更新不正确。不正确的现象是生成二级域名下的下属栏目页时,导航中的栏目地址为二级域名而非二级域名+子栏目英文名。该栏目页中的网页URL也会存在此情况。示例:

栏目A捆绑二级域名 a.xx.com ,栏目A下有子栏目分别是

栏目A1,名称 a1

栏目A2,名称a2

生成栏目A的页面后,栏目A的导航中子栏目的连接都是 a.xx.com 而不是对应的如:

栏目A1,连接 a.xx.com/a1/

栏目A2,连接 a.xx.com/a2/

bug修复方法:

方法1、每个栏目进入设置保存,更新全站缓存、更新栏目缓存(这步更新全站后不需要操作,切不可更新全站缓存前更新栏目缓存);

方法2、打开后台管理文件夹(假定是admin)下的category.php文件,找到以下代码:

/**
* 更新缓存并修复栏目
*/public function public_cache() {  $this->repair();  $this->cache();
  showmessage(L('operation_success'),'?m=admin&c=category&a=init&module=admin&menuid=43');
}

修改为:

/**
* 更新缓存并修复栏目
*/public function public_cache() {  //先更新数据库记录到栏目缓存
  $this->cache();  //执行修复操作
  $this->repair();  //再更新修复后的数据记录到缓存中
  $this->cache();
  showmessage(L('operation_success'),'?m=admin&c=category&a=init&module=admin&menuid=43');
}

覆盖后,更新栏目缓存即可。

方法3,打开content\classes\url.class.php找到

public function category_url

部分,修改其修复栏目URL的代码。把

r=this->categorys[$pid];

改成直接读取数据库的栏目信息记录。这里是调取缓存中的栏目信息的,如果缓存中栏目信息是错误的,这里会照用。

这里就不贴代码了,逻辑思路都提供了。


石家庄捷搜网络致力于PHPCMS网站建设,模板制作,系统二次开发服务。

如果PHPCMS系统相关需求的可以联系我们。

客服微信:13832394380

  • 联系我们

  • 邮箱:794421925@qq.com
  • 电话:13832394380
  • Q Q:794421925 点击交谈
  • 地址:石家庄市南二环西路31号昊邦大厦A1602

Copyright © 2008-2021 石家庄捷搜网络科技有限公司 版权所有 备案号:冀ICP备16025780号-1