帝国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版本的,两处数字可以相同。

本文为原创,转载请注明来自 THIS IS IT - 夜色冷月,并保留原文链接

相关日志

没有评论

Trackbacks/Pingbacks

  1. CSS中text-overflow的用法 / THIS IS IT - 夜色冷月 - [...] 在页面重构过程中,我们经常会遇到列表项文本过长问题。通常的处理方法是由程序判断字数,然后进行截取。我曾经写过《帝国CMS标题截取自动添加省略号的解决办法》。用这种方法的缺点是实际输出的文本是不完整的,搜索引擎抓取的话,抓到的文本就是不完整的,不利于SEO。另外,在中英文和特殊符号混排的文本中,利用字数控制有时候并不是特别可靠,不同的编码类型下,字数更加难以确定。 [...]

留下足迹