这么写当然可以用,并且绝大多数人用的都是这种方法,但是当栏目层级太多的时候这个就无法判断,关键是太长了,影响代码美观,所以封装一个方法快速判断
- {if $top_parentid == $r[catid]||$catid==$r[catid]||$parentid==$r[catid]} current{/if}"
找到phpcms/libs/function/global.func.php最下边新增代码:
前端使用方式:
- /**
- * 判断栏目高亮
- * @param $catid 当前catid
- * @param $heightid 需要高亮的catid
- */
- function curnav($catid,$heightid){
- if (empty($siteid)) $siteid = get_siteid();
- $category = getcache('category_content_'.$siteid,'commons');
- $flag = false;
- if(empty($catid) && empty($heightid)) {
- $flag = true;
- }else{
- if(!empty($heightid)){
- $parentids = explode(',',$category[$catid]['arrparentid']);
- if(in_array($heightid,$parentids) || $catid == $heightid){
- $flag = true;
- }
- }
- }
- return $flag;
- }
(1)如果栏目是固定的
$catid为固定写法,表示当前页的栏目id,1表示要高亮的栏目,即只要是1或者1的子栏目都会高亮
- {if curnav($catid,1)}class="on"{/if}
(2)如果是循环的栏目
$catid固定写法,当前栏目id,$r[catid]循环的栏目id,也就是只要当前是$r[catid]或者$r[catid]的子栏目都会高亮
- {if curnav($catid,$r[catid])}class="on"{/if}
(3)首页的判断
或者直接:
- {if curnav($catid,0)}class="on"{/if}
- {if curnav(0,0)}class="on"{/if}
这么一封装,就可以快速的判断是否需要高亮