DEDE的文章评论没有DISCUZ的评论好看,客户要求改成基本一样。
没办法,两个都对比研究了一下,终于基本解决了。
1、先从 详细评论页 开始
修改步骤:
修改评论模板文件 feedback_templet.html
A、在头部增加引用
B、在
后面增加转换函数,因为发表表情以后,还要转换成HTML能够识别的标签才行。比如把 [b][/b] 转换成
function convertem($message){
$message = str_replace(array('[b]', '[/b]'), array('',''), $message );
$message = str_replace('[color=','', $message );
$message = str_replace('[url=www.',' $message = str_replace('[url=WWW.','
$message = str_replace('[url=','', $message );
$message = str_replace('[img','', $message );
$message = str_replace(']','>', $message );
return $message;
}
?>
//本div是参考discuz的js文件的要求增加的,用来定位的。
C、找到{dede:field.msg function="Quote_replace(@me)"/}
替换成
D、找到
替换成
注意:attach_b.gif,attach_fontcolor.gif 这两张图片我没找到,是我自己做的,其他的图片可以搜到。
这里主要是模仿disuz的评论编辑器的效果
2、文档页面修改方法相同,只是涉及页面多一些,稍微复杂一点点
A、修改 article_article.html
B、
后增加一行
C、修改ajaxfeedback.html,找到
替换成
D、修改feedback_ajax.php
在文件前面空白地方增加转换函数
function convertem($message){
$message = str_replace(array('[b]', '[/b]'), array('',''), $message );
$message = str_replace('[color=','', $message );
$message = str_replace('[url=www.',' $message = str_replace('[url=WWW.','
$message = str_replace('[url=','', $message );
$message = str_replace('[img','', $message );
$message = str_replace(']','>', $message );
return $message;
}
E、把
替换成
整个网站更新,即可。
另附 图片转换函数:
function replaceimg($s)
{
// 例如将 [img=128,128]www.abcceo.com/lcl.jpg[/img] 转换成
$r =$s;
while (stripos($r,'[img]')>0)
{
//考虑没有长宽的情况
$p=stripos($r,'[img]');
$a=substr($r,0,$p+5);
$b=substr($r,$p+5,strlen($r)-$p);
$e=stripos($b,'[');
$c=substr($b,$e,strlen($b)-$e );
$b=substr($b,0,stripos($b,'['));
$r=str_replace('[img]',''.$c;
}
while (stripos($r,'[img=')>0)
{
//考虑有长宽的情况
$p=stripos($r,'[img=');
$a=substr($r,0,$p+4);
$b=substr($r,$p+4,strlen($r)-$p);
$e=stripos($b,']');
$c=substr($b,$e+1,strlen($b)-$e );
$b=substr($b,1,stripos($b,']')-1);
$r= str_replace('[img','',$c);
}
$r=str_replace('[/img]','',$r);
return $r ;
}
我写的转换函数,还有些缺陷,还不够完善,谁要是修改完善了,记得发一个最新版给我。