今日在http://www.im286.com/viewthread.php?tid=1646635看到了一个帖子,提到不用外挂,直接在模板里面添加表情功能,摘要如下:
将这段代码存成JS文件,加载到期模板中:
function insertSmilies(strCode) {
var txtarea = document.inputform.commentText;
strCode = ' ' + strCode + ' ';
if (txtarea.createTextRange && txtarea.caretPos) {
var caretPos = txtarea.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? strCode + ' ' : strCode;
txtarea.focus();
} else {
txtarea.value += strCode;
txtarea.focus();
}
}
接下来在commentform模板文件中加入
<a href="javascript:insertSmilies('[smile]')"><img alt=[smile] src="{$url->getTemplateFile("images/smilies/icon_smile.gif")}"></a>当然这是加载一个表情,实际会很多,依次加入就行了
注意是加到<form>后面。
接下来在postandcomments文件的{$comment->getText()}前面加入:
[color=Red]{assign var=imga value="<img src='"|cat:$url->getTemplateFile("images/smilies/icon_smile.gif")|cat:"' width='20' height='20' alt='smile' align='middle' />"}
{assign var=commenttext value=$comment->getText()|replace:"[smile]":$imga}
{$commenttext}[/color]
这段代码是将表情名字转换成图片载入$comment->getText()
最后,输出{$commenttext}也就是加载了表情的留言正文
这样为模板加入表情功能就完成了!
我按照他的说法,确实回复里面可以用"[smile]"来调用表情图片。但是我添加两个或者两个以上的时候,就只有最后一个表情可以用,其他的则无法调用。。。其中我采用的方法是将红色的代码再使用复制黏贴一遍(当然,
[smile]以及表情图片链接
icon_smile.gif要相应改变)
请教达人,如果想添加多个表情,代码应该如何弄?