找回密码
 注册
首页 ≡≡网络技术≡≡ PHP语言 dedecms限制标题长度并加省略号的修改方法 ...

CMS dedecms限制标题长度并加省略号的修改方法

灰儿 2009-10-26 09:43:43
本帖最后由 灰儿 于 2009-10-27 18:26 编辑

大家都知道,有时候,网页文章的标题太长,会影响网页的美观,所以我们要对它进行修剪,限制它只显示多少个文字,多出来的部分用省略号代替。那么如何和在DEDECMS实现这个效果呢,下面列出3种方法给大家参考:

一、修改CSS样式表的方法:
先在首页模板中找到需要限制标题长度的相关样式表标签,如在V5.5版中控制首页标题显示效果的相关样式表标签为ico3,在layout.css文件中,
源代码为:
.ico3 li{
padding-left:16px;
background:url(../images/ico-3.gif) 7px 11px no-repeat;
}
修改为:
.ico3 li{
padding-left:16px;
background:url(../images/ico-3.gif) 7px 11px no-repeat;
text-overflow:ellipsis;
white-space:nowrap;
overflow:hidden;

}

解释:
text-overflow:ellipsis :当对象内文本溢出时显示省略标记…,
white-space:nowrap:强制文本在一行内显示,
overflow:hidden:溢出内容为隐藏。

修改CSS的方法简单,不过很遗憾,此种方法兼容不好,仅适用与IE7或IE8等新版本IE浏览器,在IE6.0中有时显示在正确,text-overflow:ellipsis属性在firefox中也是没有效果的。

二、修改模板的方法:

用 [field:title function=’ ( strlen(”@me”)>34 ? cn_substr(”@me”,30).”…” : “@me” ) ‘ /] 代替了原来的 [field:title /] ,在输出标题时多了一个判断的过程,先判断标题是否大于34字节,如果大于则只输出30字节的长度,并加上省略号。而标题链接提示文字 title=”[field:title /]” 则不受影响,鼠标移上去时仍显示标题的全部内容。

注:代码中的引号全为英文单引号与双引号。

三、修改dedecms的标签,让鼠标指向标题显示完整标题名的方法:

(一)、dedecms V5.3 修改方法
增加一个fulltitle标签,让你的title=""显示完整标题
具体修改如下:
1、打开include\inc目录下的inc_fun_SpGetArcList.php文件
2、找到228行
$row['title'] = cn_substr($row['title'],$titlelen);

在前面增加一行
$row['fulltitle'] = $row['title']; //注释:显示完整标题

3、找到
$row['textlink'] = "<a href='".$row['filename']."'>".$row['title']."</a>";

将其替换为:
$row['textlink'] = "<a href='".$row['filename']."' title='".$row['fulltitle']."'>".$row['title']."</a>";

(二)、dedecms V5.5 修改方法
dedecms V5.5根目录include\taglib\arclist.lib.php文件中已存在fulltitle标签,无需再添加fulltitle标签。

具体修改如下:
1、打开include\taglib目录下的arclist.lib.php文件
2、找到360行
$row['textlink'] = "<a href='".$row['filename']."'>".$row['title']."</a>";

将其替换为:
$row['textlink'] = "<a href='".$row['filename']."' title='".$row['fulltitle']."'>".$row['title']."</a>";
您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。