【插件名称】用一个浮动层来显示Smilies
【功能说明】对于很多Smilies的来说,这应该是个解决版面问题的办法 ,大概可以容纳多很多的 (我的是50个举牌子表情,加上5个相对小一些的表情,我使用的风格还是窄风格,如果大的话,还可以更多的)
【适用版本】2.5&sp1
【插件作者】lu5266
【修改文件】include/cache.php forumdisplay.php viewthread.php (如果在快速发贴和快速发贴也显示的,就需要改)
【修改模板】post_sminsert.htm post_editpost.htm post_newthread.htm post_newreply.htm forumdisplay.htm viewthread.htm
【技术支持】www.5466.ik8.com
【演示地址】http://free4.e-168.cn/luzhenling/bbs/forumdisplay.php?fid=12
=====================================================
[9.5]bug改正: 在快速回复和发贴的时候,有可能用不了
在viewthread.php,forumdisplay.php里
查找:
替换为:
在viewthread.htm,forumdisplay.htm里
查找:
能找到的话,就可以用了.
找不到的话,在文档顶部加上
- <script language="JavaScript" src="include/bbcode.js"></script>
复制代码
实在不好意思啊.
=====================================================
安装方法:
1:修改post_sminsert.htm
选中所有的
替换为:
- <!--{if $smileyinsert}-->
- <br>
- ┊<a href="javascript:show_hot_smile(hot_smile,1);">显示表情列表</a>┊
- <br><br>
- ┊<a href="javascript:show_hot_smile(hot_smile,0);">隐藏表情列表</a>┊
- <br>
- <!--{/if}-->
复制代码
2:修改post_newthread.htm post_newreply.htm post_editpost.htm (三个修改一样的)
查找:
- <script language="JavaScript">
- var postminchars = $minpostsize;
复制代码
在前面加上:
- <div id=hot_smile style='position:absolute;top:expression(body.clientHeight/130+body.scrollTop);visibility:hidden'>
- <table cellspacing="0" cellpadding="0" border="0" align="center" bgcolor="{BORDERCOLOR}">
- <tr><td>
- {template post_layer_sminsert}
- </td ></tr>
- </table></div>
- <script language=javascript>
- var objname = "";
- var H1Visible = 0;
- hot_smile.style.right=0; //层定位,距右边的距离
- //hot_smile.style.top=400;
- function show_hot_smile(objname,showmethod){
- if (objname != ""){
- if (showmethod==1){
- objname.style.visibility="visible";
- H1Visible = 1;}
- else{
- objname.style.visibility="hidden";
- H1Visible = 0; }
- }
- }
- </script>
复制代码
=========================================================
说明: (其他的模板也是类似) ,这个说明一定要看啊,否则又会有不必要的问题了,这个必须看.
=========================================================
A: top:expression(body.clientHeight/130+body.scrollTop);中的130是跟顶部距离的参数,越大就离顶部越近,130基本上是贴近顶部了,2的话就是居中的位置高度 .如果不想层随滚动条动的话,可以去掉这个语句.
B: hot_smile.style.right=0; //层定位,距右边的距离
C: //hot_smile.style.top=400; //这个参数你要用的话, 就要先去掉A的那句和//hot_smile.style.top中的//
实现的是定位层跟顶部的距离,越大就离顶部越远
D: cols="85" 是输入框的宽度,可以根据你每行的表情个数(层的宽度取决于表情个数和图片大小)来做适当修改
E: 如果你的层宽度太大,就是后台设置每行表情的个数太大,我认为小表情的话6个到7个为适.自己实际测试决定
上面几个参数是要自己测试到合适自己的,这个我没法确定的.
还有风格有宽,有窄的话,最好根据具体的模板修改 D 的参数(特别的模板的话,就独立出来,其他的就是改默忍的就可以了)
其实这个层可以放到任何你想放的地方,只要你懂(哈哈,废话)
查找:
- onKeyDown="javascript: ctlent();"
复制代码
后面加上:
- onfocus="show_hot_smile(hot_smile,1);"
复制代码
3:把附件post_layer_sminsert.htm 传到default目录下
================================================
下面的是快速回复和快速发贴的修改方法: (不用的话,可以跳过,完成插件安装咯)
================================================
4:修改forumdisplay.htm viewthread.htm
forumdisplay.htm
查找:
- <!--{if $fastpost && $allowpost}-->
复制代码
viewthread.htm
查找:
- <!--{if $fastpost && $allowpostreply}-->
复制代码
在前面加上:
- <div id=hot_smile style='position:absolute;top:expression(body.clientHeight/130+body.scrollTop);visibility:hidden'>
- <table cellspacing="0" cellpadding="0" border="0" align="center" bgcolor="{BORDERCOLOR}">
- <tr><td>
- {template post_layer_sminsert}
- </td ></tr>
- </table></div>
- <script language=javascript>
- var objname = "";
- var H1Visible = 0;
- hot_smile.style.right=0;
- //hot_smile.style.top=400;
- function show_hot_smile(objname,showmethod){
- if (objname != ""){
- if (showmethod==1){
- objname.style.visibility="visible";
- H1Visible = 1;}
- else{
- objname.style.visibility="hidden";
- H1Visible = 0; }
- }
- }
- </script>
复制代码
查找:
- onKeyDown="javascript: ctlent();"
复制代码
后面加上:
- onfocus="show_hot_smile(hot_smile,1);"
复制代码
查找:
能找到的话,就可以用了.
找不到的话,在文档顶部加上
- <script language="JavaScript" src="include/bbcode.js"></script>
复制代码
5:修改include/cache.php
查找
- 'forumdisplay' => array('announcements_forum','forums','icons','onlinelist'),
复制代码
替换为:
- 'forumdisplay' => array('announcements_forum','forums','icons','onlinelist','smilies'),
复制代码
6.修改viewthread.php,forumdisplay.php
在viewthread.php
查找:
- include template('viewthread');
复制代码
在forumdisplay.php
查找:
- include template('forumdisplay');
复制代码
分别在前面加上:
- if($smileyinsert && is_array($_DCACHE['smilies'])) {
- $smileyinsert = 1;
- $smcols = $smcols ? $smcols : 3;
- $smilies .= '<tr>';
- foreach(array_reverse($_DCACHE['smilies']) as $key => $smiley) {
- $smilies .= '<td align="center" valign="top"><img src="'.SMDIR.'/'.$smiley['url'].'" border="0" onmouseover="this.style.cursor=\'hand\';" onclick="AddText(\''.htmlspecialchars(addcslashes($smiley['code'], '\\\'')).'\');"></td>'."\n";
- $smilies .= !(++$key % $smcols) ? '</tr><tr>' : NULL;
-
- }
- } else {
- $smileyinsert = 0;
- }
复制代码
7:更新缓存.还有顺手顶下
=================================
分享我找到的189个举牌子表情
https://discuz.dismall.com/viewth ... ge=1&highlight=
=================================
[ 本帖最后由 lu5266 于 2005-9-9 06:34 编辑 ] |