帝国论坛帝国网站管理系统交流区帝国CMS使用交流[求助]标题截取添加省略号的问题 【本版专题贴子】  
 1/2     1 2 ›› ›|
主题:[求助]标题截取添加省略号的问题 [加入收藏夹]   

nappan
用户头衔:举人

精华贴   :0
发贴数   :132
经验值   :614
注册时间:2010-03-03
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
[求助]标题截取添加省略号的问题
因为要自定义样式,所以我使用的是灵动标签,特地测试了一下标题过长截取后自动添加省略号的问题
查了下资料仍然不能解决我的问题,代码如下
[e:loop={'news',8,22,0}]
<li>[<a href="<?=$bqsr[classurl]?>"><?=$bqsr[classname]?></a>] <a href="<?=$bqsr[titleurl]?>" title="<?=$bqr[title]?>"><?=esub($bqr[title],36,'...')?></a></li>
[/e:loop]
但这样处理之后标题长会自动截取并添加省略号的问题是解决了,但是长度并不长的标题也自动添加了省略号!! 附图一张

搜了论坛也没有好的解决方案,好像用万能标签可以改下那个/e/class/t_futions.php那个文件来解决,但是对于灵动标签我仍然不知道如何处理,不知道万能标签能不能自己定义样式?有高手知道给我点思路吧?!!

我用的版本现在是最新的V6.5

原来我用DEDECMS是这么处理的!
{dede:arclist row='10' orderby='hot' titlelen='80'}
<li><a href="[field:arcurl/]  "  target="_blank" title="[field:title/]">[field:title function='(strlen("@me") >34 ? cn_substr("@me",34)."..." : "@me")' /]</a></li>
{/dede:arclist}



[已解决]经过二楼提供的思路,已经解决此问题,代码放在五楼了,有此需要的可以拿来参考下,相信论坛里好多人都需要这个,因为我也是翻了好久才发现大家都有这么个需求,不过都没有一个比较好的方案,除了那个使用万能标签的,不过我本人没有测试过.因为好像没发现那个万能标签可以自己定义格式,所以不适合我,接触帝国还没多久.好多东西还是一头雾水.幸好这里热心人挺多的!!

上传以下图片:


[该贴被修改 2 次,最后修改时间 2010-10-18 01:16:06 ]


路漫漫其修远兮,不如我们去打的!
2010-10-17 22:59:04 已设置保密 顶部 回复 引用 报告 编辑 删除

飞蓝
用户头衔:进士

精华贴   :0
发贴数   :940
经验值   :2994
注册时间:2006-12-04
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

加一个判断  
if(strlen($bqr[title])<=40){
不添加.....
}else{
添加
}




2010-10-17 23:06:51 已设置保密 顶部 回复 引用 报告 编辑 删除

nappan
用户头衔:举人

精华贴   :0
发贴数   :132
经验值   :614
注册时间:2010-03-03
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

原帖由 飞蓝 于 2010-10-17 23:06:51 发表
加一个判断  
if(strlen($bqr[title])<=40){
不添加.....
}else{
添加
}


此判断应该加到函数里还是模板里呢?!



路漫漫其修远兮,不如我们去打的!
2010-10-17 23:28:00 已设置保密 顶部 回复 引用 报告 编辑 删除

maike
用户头衔:举人

精华贴   :0
发贴数   :655
经验值   :1795
注册时间:2008-12-25
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

小于截取字数就会加省略号吧




2010-10-18 00:09:13 已设置保密 顶部 回复 引用 报告 编辑 删除

nappan
用户头衔:举人

精华贴   :0
发贴数   :132
经验值   :614
注册时间:2010-03-03
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

经过二楼提供的思路已经解决了..不过关于那个字数我也觉得怪怪的.. 想不明白..硬是拿标题echo测试出来的,代码如下


[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]


关于字数的问题有谁能帮我解释下!!? 标题大于18个汉字就截取,所以esub里是36,这个我能理解,,可是strlen($bqr[title]) > 54这个不太理解,求教高手!!!



上传以下图片:


[该贴被修改 3 次,最后修改时间 2010-10-18 00:45:11 ]


路漫漫其修远兮,不如我们去打的!
2010-10-18 00:40:42 已设置保密 顶部 回复 引用 报告 编辑 删除

麦蒂
用户头衔:探花

精华贴   :0
发贴数   :6368
经验值   :17545
注册时间:2009-03-06
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]

utf8一个汉字等于三个字符




2010-10-18 08:16:37 已设置保密 顶部 回复 引用 报告 编辑 删除

nappan
用户头衔:举人

精华贴   :0
发贴数   :132
经验值   :614
注册时间:2010-03-03
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

原帖由 麦蒂 于 2010-10-18 08:16:37 发表
utf8一个汉字等于三个字符


谢谢帮我解惑, 百度一下果然是这个原因!! 感谢!!!



路漫漫其修远兮,不如我们去打的!
2010-10-18 16:48:38 已设置保密 顶部 回复 引用 报告 编辑 删除

麦蒂
用户头衔:探花

精华贴   :0
发贴数   :6368
经验值   :17545
注册时间:2009-03-06
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]

原帖由 nappan 于 2010-10-18 16:48:38 发表


谢谢帮我解惑, 百度一下果然是这个原因!! 感谢!!!

嘿嘿




2010-10-19 09:03:15 已设置保密 顶部 回复 引用 报告 编辑 删除

wophy6572
用户头衔:书生

精华贴   :0
发贴数   :14
经验值   :167
注册时间:2010-05-23
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

非常感谢~~好人就是多啊~~




2014-02-10 21:29:09 已设置保密 顶部 回复 引用 报告 编辑 删除

pingpong
用户头衔:探花

精华贴   :0
发贴数   :9328
经验值   :24281
注册时间:2008-11-02
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 10 楼]

支持一下




2014-02-11 08:22:24 已设置保密 顶部 回复 引用 报告 编辑 删除
 1/2     1 2 ›› ›|

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1