我們在用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的程序了。