金鱼眼

帝國cms導航當前頁面高亮實現另類方法:靈動標簽+邏輯非

關于帝國cms制作的網站,當前頁面導航高亮的實現方法,在華哥過去的這篇博文中(見:jquery實現帝國cms當前導航高亮的實踐演練)已經有了成功實踐。不過最近又碰到這個技術性問題,由于html代碼結構不一樣,采用的是另一種解決方法。

方法共分兩步。

第一步,用靈動標簽調用出與后臺欄目相對應的導航。

帝國cms后臺欄目

[e:loop={“select classid,classname from {$dbtbpre}enewsclass where bclassid=0 and showclass=0 order by myorder,classid asc”,0,24,0}]
<?php
$classurl=sys_ReturnBqClassname($bqr,9);//取得欄目地址
$bgcolor=””;
if($GLOBALS[navclassid])
{
$fcr=explode(‘|’,$class_r[$GLOBALS[navclassid]][featherclass]);
$topbclassid=$fcr[1]?$fcr[1]:$GLOBALS[navclassid];//取得當前欄目的一級欄目ID
if($bqr[classid]==$topbclassid)
{
$bgcolor=”active”;
}
}
?>
<a href=”<?=$classurl?>” class=”<?=$bgcolor?>”>
<?=$bqr[classname]?>
</a> [/e:loop]

效果如圖:帝國cms當前欄目高亮

注意代碼中的$bgcolor變量,就是它在發揮當前頁面高亮的作用。

第二步,處理首頁。如果當前頁面是首頁,那么首頁高亮,導航中的其它則不高亮。

可是有個問題,首頁并不在后臺的欄目設置中,因此,上面靈動標簽的代碼不能對首頁施加作用,需另外做進一步處理。

參考了這篇文章:帝國cms小技巧之 判斷對應頁面 給欄目高亮

不過,在實踐中,發現$classid是個空值,至少在首頁中經測試它是個空值。我用的版本是帝國cms7.5。

又參考了這篇文章:帝國CMS利用PHP判斷當前頁面是否為首頁

這個不太好實踐,但是提供了思路:就是要想方設法,來判斷當前頁是否為首頁

另外那個“非首頁”中的非字,讓我想起了邏輯非的判斷,于是查找php語法,嘗試用邏輯非來解決。

代碼是這樣:?<a href=”/” <? if (!$GLOBALS[navclassid]){echo ” class=’active'”;} ?>>首頁</a>

php中的邏輯非就是一個!符號,這樣一試,發現,竟然成了。

PHP判斷當前頁面是否為首頁

不過要注意,這第二段代碼可是放在第一段前的?

本人非程序員,也不是天天研究帝國cms。不過經過這些年的折騰和實踐(從7.0至7.5),用帝國cms建設網站的技術也日益增長至嫻熟階段,沒有什么搞不定的,甚至可以為師教學,帶著學員快速提升。最后贊一句帝國cms7.5,個人感覺真是好極了,安全、穩定、快速。

這篇文章對俺有幫助,打賞犒勞下作者吧?

本文鏈接:肖運華 » 網站策劃設計制作優化 » 帝國cms導航當前頁面高亮實現另類方法:靈動標簽+邏輯非
原創文章,轉載請注明:http://www.nqxrd.club/3465.html

發表評論

電子郵件地址不會被公開。

金鱼眼