PHPCMSV9栏目设置是否生成到根目录后路径错误Bug如何修复

今天有朋友问PHPCMSV9栏目设置是否生成到根目录后路径错误Bug如何修复的问题,具体说来就是第四层父级路径parentdir明显是错的,会造成在生成栏目列表页HTML的时候位置错误。今天齐鲁建站小编就来说说PHPCMS生成根目录Bug的修复方法。

当Phpcms v9栏目设置中选中【是否生成到根目录】后,子集栏目会存在路径错误,CMSYOU在一个资讯项目中就碰到了这一Bug,可以说得上常规使用PC V9 几年都不会发现的一个Bug,今天齐鲁建站小编在这里与大家分享这一个Bug的修正方法。

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

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

PHPCMS,PHPCMS生成根目录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,PHPCMS生成根目录Bug

这才是正确的。

以上就是关于PHPCMS生成根目录Bug的所有内容,这个Bug一般人还不能碰到,因为基本上没使用到【是否生成到根目录】功能设置,一般也不会越级生成HTML的哦。

极客网企业会员

免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。