给Dedecms评论增加表情功能

softyun3年前cms教程52

最近用dedecms做了个站,觉得dede的评论系统不太好用,就自己对它进行了一番改造,增加了表情、QQ秀、ajax无刷新等功能。国内有一大批站长用的是dede,今天我先分享下怎样为评论加上表情。
首先大家思考一下怎样才能让dede评论里面显示表情图片直接内容里面写<img src="********" />肯定是不行的,dede会在保存评论前把它转换成普通的文本。我们要的是要保证以后能顺利升级,所以尽量不改dede的系统文件。
现在换个思路,看看那些论坛,它们添加表情的时候都是添加的一个表情标记,发帖后就变成表情图片了。看来是在保存帖子的时候对表情标记做了转换。咱们也来依葫芦画瓢。
先找一个表情图片传到服务器上,假设是在qqsvr/01.gif,表情标记假设为[em01],现在我只要让dede在保存评论的时候把[em01]转换成<img src="qqsvr/01.gif" />就行了。
这里又涉及到2个问题,是先转换之后再保存,还是直接保存,显示的时候再转换
如果转换之后再保存,也就是说你的数据库里存的是<img src="qqsvr/01.gif" />,这个链接就固定了,你的表情目录就不能变了,而且这必需改dede的系统文件才行。
如果是显示的时候再转换,那你的数据库里就保存的是[em01]这样的表情标记,显示的时候根据模板规则进行转换,非常灵活,而且不用改dede的系统文件,只需要改模板就行了。只是显示一次就要转换一次,会增加一点儿系统负担。
我们用第二种方法。打开templets/plus/feedback_templet.htm,这个是dede的评论系统模板,我们发现它里面是可以直接写php代码的,<?php echo $row['msg']?>这里就是输出的评论内容。先把它改成<?php echo convertem($row['msg']) ?>。
convertem()就是转换表情的方法,就是用它把[em01]转换成<img>标记,现在我们要给这个方法写点内容,让它按我们的意思来转换。
还是这个文件,在顶部添加
<?php
function convertem($message){
$message = str_replace('[em01]','<img src="qqsvr/01.gif" />', $message );
return $message;
}
?>
这里的str_replace可以进行替换操作,比如str_replace(A,B,C)大概意思就是把C里面的A替换成B。
所以我们用convertem($row['msg'])就能把$row['msg']里面的[em01]给替换了。
现在你在评论里输入[em01],发表,应该能看到显示的图片了。不过这还没完,你总不可能让用户也要输入代码才能发表情吧所以你还得找个合适的地方,加上
<img src="qqsvr/01.gif" onclick="javascript:document.getElementById('msg').value+='[em01]';" />
用户点击这个图片后,会自动在评论框里加上[em01]。
这就大功告成了,其实从头到尾只改了feedback_templet.htm这个模板就实现了表情功能。
附图

 给Dedecms评论增加表情功能.

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

织梦DedeCms教程:后台栏目管理处显示未审核文档数

最近模板无忧第五版正式上线了,后台未审核的文档很多,每次审核内容的时候都是打开 等审核的档案 来查看未审核的内容的. 但是列表是根据发布时间进行排序的,如果想每个栏目审核几篇文档,就要去栏目管理处挨个...

Dedecms自定义表单时间时间戳值类型的转换方法

今天给大家教一些Dedecms自定义表单时间时间戳值类型的转换方法,简单方便,希望可以帮助到你。在给客户用织梦dedecms做二次开发的时候,自定义表单的功能会经常用到,比如比较简单的留言,订单咨询,...

让首页问答出现已经解决的问题

\templets\default\index模板中问答部分 {dede:ask row='8'}改为{dede:ask row='' qtype='ok'}官方原帖:40300&2...

织梦DEDECMS教程:去除列表页文章标题加粗标签的方法

最近在用织梦DEDECMS搭架网站的时候,我碰到这种情况:就是生成的列表模板中,列表文章标题全都加粗加黑了,这样看的特别扭。刚开始,我还以为是样式出了问题,我就把列表模板页面的样式检查了一遍,根本没有...

DEDECMS安装你必须知道的几点

先给最初级的同志们 一、下载程序后如何安装 这个不用浪费篇幅了,有人说的很详细,找不到了看这里59061 关于SP1版的有所改动,具体改动的地方和安装注意事项,这里:90435 这两个在最上面可以找到...

问答模块问题显示悬赏分数以及发布时间

描述:显示悬赏分数图片: 打开 include/inc_arcpart_view.php在685行左右找到 $query = "select id, tid, tidname, tid2, tid2n...