Phpcms v9栏目设置是否生成到根目录后存在路径错误Bug的修正方法

不知道大家发现这一个隐藏很深的路径问题的Bug没:当Phpcms v9栏目设置中选中【是否生成到根目录】后,子集栏目会存在路径错误,鸿硕科技在一个资讯项目中就碰到了这一Bug,可以说得上常规使用PC V9 几年都不会发现的一个Bug,今天鸿硕科技在这里与大家分享这一个Bug的修正方法。

 

不知道大家发现这一个隐藏很深的路径问题的Bug没:当Phpcms v9栏目设置中选中【是否生成到根目录】后,子集栏目会存在路径错误,鸿硕科技在一个资讯项目中就碰到了这一Bug,可以说得上常规使用PC V9 几年都不会发现的一个Bug,今天鸿硕科技在这里与大家分享这一个Bug的修正方法。

估计你看完第一段,还在云里雾里,来具体说明给你听:实际栏目层级是:第一层栏目》第二层栏目》第三层栏目》第四层栏目,这4个栏目的英文目录名分别是:one、two、three、four,都设置生成HTML静态文件,URL规则管理为【{$categorydir}{$catdir}/index.html|{$categorydir}{$catdir}/index_{$page}.html】。具体什么是URL规则?请看以往的文章:PHPCMS V9静态化HTML生成设置及URL规则优化

如果【第二层栏目】这个栏目选中了【是否生成到根目录】,那么【第二层栏目】的路径为:域名/two/,【第三层栏目】的路径应该为:域名/two/three,【第四层栏目】的路径应该为:域名/two/three/four,而实际上Phpcms v9版本因为存在一个bug,实际路径变成了:

Phpcms v9栏目设置是否生成到根目录后存在路径错误Bug的修正方法

大家看出来Bug所在没?【第四层栏目】的父级路径parentdir明显是错的,这样会造成在生成栏目列表页HTML的时候位置错误。

弄清楚这个Bug之后,找到栏目层级关系的方法文件phpcms/modules/admin/category.php,修改756到782行:

$arrparentid = explode(',', $arrparentid);
$arrcatdir = array();
foreach($arrparentid as $id) {
if($id==0) continue;
$arrcatdir[] = $this->categorys[$id]['catdir'];
}
return implode('/', $arrcatdir).'/';

修改为:

$arrparentid = explode(',', $arrparentid);
$arrcatdir = array();
foreach($arrparentid as $id) {
if($id==0) continue;
$arrcatdir[] = $this->categorys[$id]['catdir'];
}
$parentdirs = implode('/', $arrcatdir).'/';
$temp_categorys = $this->db->select(array('siteid'=>$this->siteid,'module'=>'content'), '*', '', 'listorder ASC, catid ASC', '', 'catid');
foreach($arrparentid as $id) {
$temp_r = array();
$temp_r = $temp_categorys[$id];
$temp_setting = string2array($temp_r['setting']);
if($temp_setting['create_to_html_root']){
$temp_parentid = $temp_categorys[$id]['parentid'];
$parent_r = $temp_categorys[$temp_parentid];
$parentdirs = str_replace($parent_r['catdir'].'/', '', $parentdirs);
}
}
return $parentdirs;

保存,然后更新栏目缓存,这样数据库里边的栏目层级关系更新为:

Phpcms v9栏目设置是否生成到根目录后存在路径错误Bug的修正方法

这才是正确的。

 

最后感叹下,这个Bug一般人还不能碰到,因为基本上没使用到【是否生成到根目录】功能设置,一般也不会越级生成HTML。

给TA打赏
共{{data.count}}人
人已打赏
建站知识

80端口被占用问题

2020-3-11 8:37:42

建站知识

swiper4多行Slides 分布的分页器问题

2020-5-7 8:33:27

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索