修复网上自定义栏目名称伪静态的bug

网上的自定义栏目伪静态基本都是互相抄袭的,都存在一个问题,如果当两个栏目重复的时候,会造成伪静态错误,虽然phpcms不允许一级栏目重复,但是二级栏目一下就不能判断了。所以我们需要多校验一级栏目,当然还有极端1情况,那就是网上栏目还是有重复的,这种暂时不考虑

修复代码:

  1. private function _getCategoryId($catdir){ 
  2.         if(!strpos($catdir,'/')) {   
  3.                     $dirname = $catdir;   
  4.         }else {   
  5.                 $dirname = end(explode('/',$catdir)); 
  6.                 $dirlist = explode('/',$catdir);//获取全部栏目用于校验重复栏目 
  7.         }   
  8.         $this->category_db = pc_base::load_model('category_model');  
  9.         $this->siteid = get_siteid()
  10.         $CATEGORYS = getcache('category_content_' . $this->siteid, 'commons'); 
  11.         //$result = $this->category_db->get_one(array('catdir'=>$dirname)); 
  12.         $res = $this->category_db->select(array('catdir'=>$dirname),'*','','listorder desc'); 
  13.         if(count($res) > 1){ 
  14.             $end2 = $dirlist[count($dirlist)-2]; 
  15.             $res2 = $this->category_db->get_one(array('catdir'=>$end2)); 
  16.             foreach($res as $k =>$r){ 
  17.                 $pid = $r['parentid']; 
  18.                 if($CATEGORYS[$pid]['catdir'] == $end2){ 
  19.                     $catid = $r['catid']; 
  20.                     break
  21.                 } 
  22.             } 
  23.         }else
  24.             $catid = $res[0]['catid']; 
  25.         } 
  26.         return $catid;  
  27.     }   




本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com