1. 程式人生 > >讓Phpcms 單頁左欄只顯示同級欄目的辦法

讓Phpcms 單頁左欄只顯示同級欄目的辦法

Phpcms的單頁模板是page.html 其左欄顯示同級欄目,顯示的變數是$arrchild_arr,原始模板顯示的左欄程式碼如下

{loop $arrchild_arr $cid}

                <li{if $catid==$cid} class="cur"{/if}><a href="{$CATEGORYS[$cid][url]}">{$CATEGORYS[$cid][catname]}</a></li>

{/loop}

檢視其程式程式碼

$arrchild_arr = $CATEGORYS[$parentid]['arrchildid'];

if($arrchild_arr=='') $arrchild_arr = $CATEGORYS[$catid]['arrchildid'];

$arrchild_arr = explode(',',$arrchild_arr);

array_shift($arrchild_arr);

其展現結果為 顯示同級欄目以及同級欄目的子欄目,這樣的結果顯然不是我們想要的。

本來想改動其程式來實現,後面考慮到系統升級的問題,儘量不改動程式,就在模板裡面實現

後來想通過$arrchild_arr 刪除非同級欄目陣列的形式弄,可以,但是太麻煩,後面就換了個思維,用別的方法實現,直接使用$catid來尋找,系統提供了子欄目的查詢函式subcat,在模板裡面實現也減少程序升級程式碼被替換風險。上面的程式碼,替換為下面的即可;

{loop subcat($CATEGORYS[$catid]['parentid']) $v}

 <li{if $v[catid]==$catid} class="cur"{/if}><a href="{$v[url]}">{$v[catname]}</a></li>

{/loop}