仿站咨询QQ:2587483189

手机微信同号:15850888840

帝国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========== 

 

  • 上一篇:帝国ECMS如何防止恶意注册
  • 下一篇:如何让修改帝国cms的系统提示页
  • 来源:未知//所属分类: 帝国仿站 /更新时间:2011-04-07
    相关仿站教程