航空论坛_航空翻译_民航英语翻译_飞行翻译

 找回密码
 注册
搜索
查看: 2748|回复: 0
打印 上一主题 下一主题

织梦dedecms修改栏目描述和文章关键字数变长的完美方法 [复制链接]

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
1#
发表于 2017-10-4 13:54:07 |只看该作者 |倒序浏览

在Dedecms系统中,文章摘要(可以通过infolen或description相关标签调用)被设置了字数上限为250字符,设置上限的主要 目的是减少数据库的冗余,保证网站良好的性能。因此,如果对简介内容不设置上限显然不合理,但是如果可以自由控制这一上限,那么将对网页内容布局带来积极 作用。在网页设计过程中,往往需要在频道列表页面调用到文章摘要,如果可以有效控制文章摘要的字数,那么就可以使得页面布局很灵活。

方法一

是通过修改数据库的方法

1.改变文章内容的关键词和描述字数:
% g& \. X6 ]7 J( ~$ i4 X同样在,系统工具---SQL命令行工具---运行SQL命令行:
8 \4 O$ R( O. d8 M& l

alter table  dede_archives change  column keywords  keywords  text;. k% f9 W% ]! I/ f5 m7 L* k
alter table  dede_archives change  column description  descrition  text; ' k" X9 L5 Q' ^4 k/ @0 g( O% e

                     接下来修改dede 文件下的 article_add.php 和 article_edit.php% f- a7 V% J/ J+ S+ p; b8 _, c: N# K
$description = cn_substrR($description,500);
6 a/ D3 v# j5 R/ M( ]$ f$keywords = cn_substrR($description,120);* H0 j" z6 f2 ~/ |* x" a
其中的数字就是你想要字符数,分别是描述和关键词。& ]3 N% f0 @& q6 `5 |* l) T9 X% v

2.改变栏目的关键词和描述字数:
# O1 X6 n* s' ?7 j在系统工具---SQL命令行工具---运行SQL命令行:, e2 X9 e* ~/ z' X5 D7 f
                     alter table  dede_arctype change  column description  description  text;
4 q  S4 [- `! @" V8 M                     alter table  dede_arctype change  column keywords  keywords  text;
0 L0 J; O1 K% a9 E& E方法二 建议就这方法

在Dedecms中,在列表页调用文章摘要的方法主要有:

1:[field:info /]

2:[field:description /]

3:[field:info function="cn_substr(@me,字符数)"/]

4:[field:description function="cn_substr(@me,字符数)"/]

第1、2种方法是直接调用文章摘要,在调用的字数问题上,当使用[field:info /]时,可以在{dede:arclist infolen=' ' }{/dede:arclist}中,设置调用摘要的字符数(最高可设置为系统设置的250);如果使用[field:description /],则直接使用后台设置的摘要字符上限。显然,这两种方式都很被动,灵活性太差。

第3、4种方法通过function函数实现了对文章摘要显示字符的灵活调整。当然,在没有修改文章摘要内容字符上限时,这4个方法的差异并不大。 但是,下面我们来说如何修改这一上限值,就可以体现出[field:description function="cn_substr(@me,字符数)"/]这一方式的重要性。

在Dedecms中,与文章摘要相关的php文件主要有:

/dede/archives_add.php

/dede/archives_edit.php

/dede/article_add.php

/dede/article_edit.php

/dede/article_description_main.php

在add页面,有一句话是:“$description = cn_substrR($description,$cfg_auot_description); ”,这句话实现了[field:description function="cn_substr(@me,字符数)"/]这一功能。因为这一语句确实有利于页面布局,因此我们在实验中没有修改。

在edit页面,有一句话是:“$description = cn_substrR($description,250); ”,这句话中出现了一个熟悉的字符数“250”,这就是系统设置的文章摘要字符数的上限值。 如果是gbk编码则显示出来的就是125个字。如果是utf-8编码则是81个字。显然,我们要突破文章摘要字符数上限,肯定得拿它开刀了。是的,这里修 改“250”为其他值即可,例如“500”。这里不推荐设置得过高,一个是在列表页没必要展示太多内容(展示太多内容不如直接用body了),另一个是避 免数据库产生冗余。

完成上面的修改还不够,还需要修改article_description_main.php

在article_description_main.php页面,找到“if($dsize>250) $dsize = 250;”语句,这里限制了在后台自动获取摘要的字符数。把这里的“250”修改为“500”即可,也就是和之前修改的字符数一致即可。(如果你确认你的 每一条文章都是手动添加,手动完成摘要获取就不需要修改这个文件了。自动摘要获取主要还是给大量文章和采集准备的。)

最后,登录后台,在系统-系统基本参数-其它选项中,自动摘要长度,改成500即可,也就是和之前修改的字符数一致即可。

完成上述修改后,我们再到频道列表页,通过标签调用即可,示例标签如下:

{dede:list typeid='' row='5' titlelen='100' orderby='new' pagesize='5'}

<h3><a href='[field:arcurl/]'>[field:title/]</a></h3>

<p>[field:description function='cn_substr(@me,500)'/]...</p>

{/dede:list}

通过以上方式,我们就实现了调用的文章摘要字符为500字符,完全突破了文章摘要250字符的系统限制,为网页布局提供了更加广阔的空间。' p' L7 n$ n0 Y- s/ _# {* P+ m
您需要登录后才可以回帖 登录 | 注册


Archiver|航空论坛 ( 渝ICP备10008336号 )

GMT+8, 2026-2-20 05:42 , Processed in 0.021002 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 MinHang.CC.

回顶部