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

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];

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

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

 

转载于:https://my.oschina.net/jacochan/blog/821267

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值