帝国CMS实现当前栏目高亮
从帝国上看到有很多方法来实现当前栏目高亮显示,但都不是真正的高亮,效果就像帝国演示站点这样(http://demo.phome.net/),还有一种笨方法就是建不同的模板指定其"class"值,每个栏目新建一个模板页面配合css。但是这样,对于以后改动来说相当的麻烦,如果栏目多的话那将是非常恐怖的事情!
下面我研究的这种方式非常的简单,不需要建N多的模板,全自动根据当前栏目的ID来高亮显示,包括内容页也能自动判断!
在这里我就拿帝国5.0默认的模板来简单举例吧!(这里教给大家的是思路方法)
首先我们到 “管理标签模板 ” 修改ID为12的 “栏目tabs导航”
仿站把"列表内容模板" 的
<li id="tabnav_btn_[!--no--]" onmouseover="tabit(this)"><a href="[!--classurl--]">[!--classname--]</a></li>
改为<li class="con[!--no--]"><a href="[!--classurl--]">[!--classname--]</a></li>
以上这是第一步
接下来到“管理封面模板 ” > "通用一级栏目模板 "
把模板里的 <body XXXXXXXXX>改为
<body id="channle[!--self.classid--]">
然后到CSS里加入(我这里是简单的定义了一下当前效果)
#channle2 .con1 {font-size:18px; background-color:#00FFFF}
#channle3 .con2 {font-size:18px; background-color:#00FFFF}
可以用 #channle3 .con2 红色的部分指定不同的栏目
..................................................................
至此所有的大栏目都可以当前自动识别显示高亮了。
如果想要实现内容页高亮只要修改相应的内容页代码,同样是把内容页模板里的
<body XXXXXXXXX>改为
<body id="channle<?php
global $empire;
$r=$empire->fetch1("select * from phome_enewsclass where classid='".$class_r[$GLOBALS[navclassid]][bclassid]."' ");
echo $r[classid];
?>">
刷新内容页看看吧,是不是也自动识别到了。!
综上这多么,我想大家应该知道这其中的原理了吧。 看下面的效果图!至于要实现什么效果就看大家去自己定义喽!
==========================增加一个wc提供的方法(适合三级目录)================================
<body XXXXXXXXX>改为
<body id="channle<?=user_GetTopBclassid($GLOBALS[navclassid])?>">
然后把
/取得顶级栏目ID函数
function user_GetTopBclassid($classid){
global $class_r;
$fr=explode('|',$class_r[$classid][featherclass]);
$topbclassid=$fr[1]?$fr[1]:$classid;//取得第一级栏目id
return $topbclassid;
}
加入到 e/class/userfun.php 中就可以了
=======注:以上动态页面都不能获取ID==========
仿站咨询扫二维码


- 相关链接:
- 教程说明:
帝国CMS实现当前栏目高亮
。