各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > phpcms

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

管理员 2022-08-28
phpcms
722
网上的自定义栏目伪静态基本都是互相抄袭的,都存在一个问题,如果当两个栏目重复的时候,会造成伪静态错误,虽然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.     }   




希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 lecms, classcms, fastadmin, pbootcms, phpcms, eyoucms, yzmcms, xunruicms, jizhicms, wordpress, hkcms, yzncms, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部