修复网上自定义栏目名称伪静态的bug
网上的自定义栏目伪静态基本都是互相抄袭的,都存在一个问题,如果当两个栏目重复的时候,会造成伪静态错误,虽然phpcms不允许一级栏目重复,但是二级栏目一下就不能判断了。所以我们需要多校验一级栏目,当然还有极端1情况,那就是网上栏目还是有重复的,这种暂时不考虑
修复代码:
修复代码:
- private function _getCategoryId($catdir){
- if(!strpos($catdir,'/')) {
- $dirname = $catdir;
- }else {
- $dirname = end(explode('/',$catdir));
- $dirlist = explode('/',$catdir);//获取全部栏目用于校验重复栏目
- }
- $this->category_db = pc_base::load_model('category_model');
- $this->siteid = get_siteid();
- $CATEGORYS = getcache('category_content_' . $this->siteid, 'commons');
- //$result = $this->category_db->get_one(array('catdir'=>$dirname));
- $res = $this->category_db->select(array('catdir'=>$dirname),'*','','listorder desc');
- if(count($res) > 1){
- $end2 = $dirlist[count($dirlist)-2];
- $res2 = $this->category_db->get_one(array('catdir'=>$end2));
- foreach($res as $k =>$r){
- $pid = $r['parentid'];
- if($CATEGORYS[$pid]['catdir'] == $end2){
- $catid = $r['catid'];
- break;
- }
- }
- }else{
- $catid = $res[0]['catid'];
- }
- return $catid;
- }