dede:
在Dedecms中,在列表页调用文章摘要的方法主要有:
I.:[field:info/]
II:[field:description/]
III:[field:infofunction="cn_substr(@me,字符数)"/]
IV:[field:descriptionfunction="cn_substr(@me,字符数)"/]
第I..II种方法是直接调用文章摘要,在调用的字数问题上,当使用[field:info/]时,可以在{dede:arclistinfolen=}{/dede:arclist}中,设置调用摘要的字符数(最高可设置为系统设置的IIV0);如果使用[field:description/],则直接使用后台设置的摘要字符上限.显然,这两种方式都很被动,灵活性太差.
第III.IV种方法通过function函数实现了对文章摘要显示字符的灵活调整.当然,在没有修改文章摘要内容字符上限时,这IV个方法的差异并不大.但是,下面我们来说如何修改这I.上限值,就可以体现出[field:descriptionfunction="cn_substr(@me,字符数)"/]这I.方式的重要性.
在Dedecms中,与文章摘要相关的php文件主要有:
/dede/archives_add.php
/dede/archives_edit.php
/dede/article_add.php
/dede/article_edit.php
/dede/article_description_main.php
在add页面,有I.句话是:$description=cn_substrR($de
*景先生毕设|www.jxszl.com +Q: ^351916072^
scription,$cfg_auot_description);",这句话实现了[field:descriptionfunction="cn_substr(@me,字符数)"/]这I.功能.因为这I.语句确实有利于页面布局,因此我们在实验中没有修改.
在edit页面,有I.句话是:$description=cn_substrR($description,IIV0);",这句话中出现了I.个熟悉的字符数IIV0",这就是系统设置的文章摘要字符数的上限值.如果是gbk编码则显示出来的就是I.IIV个字.如果是utf-VIII编码则是VIIII.个字.显然,我们要突破文章摘要字符数上限,肯定得拿它开刀了.是的,这里修改IIV0"为其他值即可,例如V00".这里不推荐设置得过高,I.个是在列表页没必要展示太多内容(展示太多内容不如直接用body了),另I.个是避免数据库产生冗余.
完成上面的修改还不够,还需要修改article_description_main.php
在article_description_main.php页面,找到if($dsize>IIV0)$dsize=IIV0;"语句,这里限制了在后台自动获取摘要的字符数.把这里的IIV0"修改为V00"即可,也就是和之前修改的字符数I.致即可.(如果你确认你的每I.条文章都是手动添加,手动完成摘要获取就不需要修改这个文件了.自动摘要获取主要还是给大量文章和采集准备的.)
最后,登录后台,在系统-系统基本参数-其它选项中,自动摘要长度,改成V00即可,也就是和之前修改的字符数I.致即可.
完成上述修改后,我们再到频道列表页,通过标签调用即可,示例标签如下:
{dede:listtypeid=row=Vtitlelen=I.00orderby=newpagesize=V}
[field:descriptionfunction=cn_substr(@me,V00)/]...
{/dede:list}
通过以上方式,我们就实现了调用的文章摘要字符为V00字符,完全突破了文章摘要IIV0字符的系统限制,为网页布局提供了更加广阔的空间.
原文链接:http://www.jxszl.com/biancheng/dedecms/74468.html