我們在用phpcms做網站的時候,經常碰到導航欄高亮功能,或者側欄高亮,這個會涉及到幾個問題: 1.欄目列表頁子欄目高亮判斷,如果當前頁面為子欄目,他的頂級欄目如果在導航欄也要高亮。 2.內容頁高亮,這個phpcms一般沒有問題。 3.單頁高亮判斷。 主要問題就在這里,一般我們直接用$top_parentid參數來判斷就可以。但是由於phpcms的設計問題,單頁沒有$top_parentid參數,如果單頁為多級單頁,那么這個辦法就行不通了。 如何解決? 其實也比較簡單,就是多加幾個判斷,由於單頁有個$parentid參數,那么我們就可以以此來判斷。 以下為參考代碼: 導航欄帶子導航菜單並且高亮
{pc:content action="category" catid="0" num="15" siteid="$siteid" order="listorder ASC"} {loop $data $r} <li class="nav_master{if $top_parentid == $r[catid]||$catid==$r[catid]||$parentid==$r[catid]} current{/if}"> <a class="nav_master_a" href="{$r[url]}">{$r[catname]}</a> {pc:content action="category" catid="$r[catid]" num="25" siteid="$siteid" order="listorder asc" return="da"} {if $da} <ul class="nav_sub"> <li> {loop $da $v} <a href="{$v[url]}">{$v[catname]}</a> {/loop} </li> </ul> {/if} </pc> </li> </loop> {/pc}
當然這個屬於普遍通用的,對於特殊情況可能仍有一些bug,比如單頁為3級以上的,那么這個可能失效了,
但是對於一般的網站夠用了,而且這個的好處是不用修改phpcms的程序了。