帝国CMS当前栏目高亮的实现方法

很多人想要在帝国CMS上实现当前栏目高亮的效果,以使用户能够快速获知自己在网站中的位置,从而提高网站的用户体验。

要实现当前栏目高亮,首先就要让模板识别当前栏目,用灵动标签可以实现这个功能,但是很多人可能不太会写灵动标签,因此我先将代码贴出来,然后再做解释。

<div id="nav">
<ul>
[e:loop={"select classid,classname,classpath from [!db.pre!]enewsclass where bclassid='".$class_r[$GLOBALS[navclassid]][bclassid]."' order by classid ",0,24,0}]
< ?php
$titleclass='normal';
if($bqr[classid]==$GLOBALS[navclassid])
{
$titleclass='current';
}
?>
<li class="<?=$titleclass?>"><a href="<?=$public_r[newsurl]?>< ?=$bqr[classpath]?>">< ?=$bqr[classname]?></a></li>
[/e:loop]
</ul>
</div>

代码解释如下:$titleclass=’normal’;是非当前栏目的样式,需要在css中自己定义.normal样式,$titleclass=’current’;是当前栏目高亮时的样式,需要在css中自己定义.current样式。除了这些,其他地方都不用修改,直接复制就可以使用了。

帝国CMS标题截取自动添加省略号的解决办法

帝国CMS是一个PHP开发的内容管理系统,最新的6.5版已经完全开源,非常方便二次开发。当然,任何东西都会有不够完善的地方,帝国CMS在标题截取方面就有点麻烦。

很多站长想将帝国CMS截取后的标题自动加上省略号(…),而未截取标题的不加。要实现这个功能,需要用到灵动标签。实现方法如下:

[e:loop={'news',8,22,0}]
<?php
if(strlen($bqr[title]) > 54)
$cutitle = esub($bqr[title],36,'...');
else
$cutitle = $bqr[title];
?>
<li>
    <span style="color:#ff0000;"><?=date('Y-m-d',$bqr[newstime])?></span> 
    <a href="<?=$bqsr[classurl]?>"><?=$bqsr[classname]?></a>
    <a href="<?=$bqsr[titleurl]?>" title="<?=$bqr[title]?>"><?=$cutitle?></a>
</li>
[/e:loop]

代码解释如下:[e:loop={栏目ID/专题ID,显示条数,操作类型,只显示有标题图片,附加SQL条件,显示排序}],栏目ID/专题ID也可以为数据表名,如’news’。最后的附件SQL条件与显示排序可以为空,直接不写或者写成”,”。实例:[e:loop={‘news’,10,1,0,”,”}]或[e:loop={‘news’,10,1,0}]

特别说明:代码中的36与数字54都代表截取18个字符,因为在UTF-8编码下一个汉字等于3个字符,54代表18个汉字,36同样也代表18个汉字。如果是GBK版本的,两处数字可以相同。