phpcms判断栏目是否高亮函数封装

平时我们判断栏目是否高亮都需要写一堆的if判断,比如
  1. {if $top_parentid == $r[catid]||$catid==$r[catid]||$parentid==$r[catid]} current{/if}" 
这么写当然可以用,并且绝大多数人用的都是这种方法,但是当栏目层级太多的时候这个就无法判断,关键是太长了,影响代码美观,所以封装一个方法快速判断


找到phpcms/libs/function/global.func.php最下边新增代码:
  1. /** 
  2.  * 判断栏目高亮 
  3.  * @param $catid 当前catid 
  4.  * @param $heightid 需要高亮的catid 
  5.  */ 
  6. function curnav($catid,$heightid){ 
  7.     if (empty($siteid)) $siteid = get_siteid(); 
  8.     $category = getcache('category_content_'.$siteid,'commons'); 
  9.     $flag = false
  10.     if(empty($catid) && empty($heightid)) { 
  11.         $flag = true
  12.     }else
  13.         if(!empty($heightid)){ 
  14.             $parentids = explode(',',$category[$catid]['arrparentid']); 
  15.             if(in_array($heightid,$parentids) || $catid == $heightid){ 
  16.                 $flag = true
  17.             } 
  18.         } 
  19.     } 
  20.     return $flag; 
前端使用方式:
(1)如果栏目是固定的
  1. {if curnav($catid,1)}class="on"{/if
$catid为固定写法,表示当前页的栏目id,1表示要高亮的栏目,即只要是1或者1的子栏目都会高亮
(2)如果是循环的栏目

  1. {if curnav($catid,$r[catid])}class="on"{/if
$catid固定写法,当前栏目id,$r[catid]循环的栏目id,也就是只要当前是$r[catid]或者$r[catid]的子栏目都会高亮

(3)首页的判断
  1. {if curnav($catid,0)}class="on"{/if
或者直接:
  1. {if curnav(0,0)}class="on"{/if

这么一封装,就可以快速的判断是否需要高亮


联系我们

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

邮件:w420220301@qq.com