
在使用帝国CMS建站时,有时需要对终极栏目和非终极栏目显示不同的样式,比如在导航菜单或栏目列表中区分可点击进入内容页的栏目和仅作分类展示的父级栏目。实现这种差异化样式的关键在于判断栏目是否为终极栏目,并通过输出不同的CSS类名来控制样式。
1. 判断终极栏目与非终极栏目
帝国CMS中,每个栏目都有一个字段 islast,用来标识是否为终极栏目:
islast=1:表示该栏目是终极栏目(可以发布信息) islast=0:表示该栏目是非终极栏目(仅作为分类目录)
在模板中调用栏目列表时,可以通过这个字段进行判断并添加不同的class。
2. 在栏目循环中添加条件判断
以“灵动标签”为例,在首页或列表页调用栏目时,使用以下代码实现样式区分:
\[e:loop={“select classid, classname, islast, classpath from [!db.pre!]enewsclass where bclassid=0 order by myorder”,0,24,0}]zuojiankuohaophpcnli class=”category-item <?php if($bqr[islast]){echo ‘final’;}else{echo ‘parent’;}?>”> <a href=”/<?=$bqr[classpath]?>”><?=stripSlashes($bqr[classname])?></a></li>\[/e:loop]
说明:
根据 $bqr[islast] 的值动态输出 final 或 parent 类名 前端可通过 .final 和 .parent 设置不同颜色、图标或鼠标行为
3. 使用CSS控制显示效果
配合上面的class输出,定义CSS样式:
.category-item.parent { font-weight: bold; color: #333; position: relative; }.category-item.parent:after { content: “+”; color: #f60; margin-left: 5px; }.category-item.final { color: #666; font-weight: normal; }.category-item.final a:hover { color: #c00; }
这样用户一眼就能看出哪些是可展开的父栏目,哪些是可以直接访问的内容栏目。
4. 在PHP代码中灵活处理(高级用法)
如果在自定义页面或复杂逻辑中使用PHP,可以直接查询数据库并判断:
query(“select classid, classname, islast, classpath from “.GetDbTable(“enewsclass”).” where bclassid=0″);while($r = $empire->fetch($sql)){ $class_css = $r[‘islast’] ? ‘style-final’ : ‘style-parent’; echo “{$r[classname]}”;}?>
基本上就这些方法。通过判断 islast 字段,再结合模板输出不同的class,就能轻松实现终极栏目与非终极栏目的样式区分。关键在于灵活运用帝国CMS的栏目数据结构和模板语法。不复杂但容易忽略细节。

评论(0)