深圳博客技术论坛

首页 » 【编程讨论学习】 » 『Discuz! NT相关技术』 » 〖插件模板〗 » [DST]论坛手写板插件 BY DST.LEE
winson - 2007-8-8 12:52:00
转自官方论坛

作者:LEE

点击在新窗口浏览图片 CTRL+鼠标滚轮可放大/缩小

使用方法:
首先修改编辑器_editor.htm :
查找
                                     

//自定义按扭显示
                                        if(!undefined(custombbcodes)) {
                                               
if (custombbcodes.length > 0){
                                                        document.writeln(
'<td><img src="editor/images/separator.gif" width="6" height="23"></td>');

                                                       
for (var i = 0; i < custombbcodes.length; i++){
                                                                document.writeln(
'<td><div class="editor_buttonnormal" id="posteditor_cmd_custom' + custombbcodes[5] + '_' + i + '" onClick="discuzcode(\'custom' + custombbcodes[5] + '_' + i/*custombbcodes[0]*/ + '\')" onMouseOver="buttonContext(this, \'mouseover\')" onMouseOut="buttonContext(this, \'mouseout\')"><img title="' + custombbcodes[2] + '" alt="' + custombbcodes[2] + '" src = "editor/images/' + custombbcodes[1] + '" width="21" height="20"></div></td>');
                                                        }

                                                }

                                        }

                               
</script>




在下面加上:


<!-- //手写板开始! -->
<td><div class="editor_buttonnormal" id="posteditor_cmd_writer"> <a href="http://boylee.net" onclick="spwhitepad();return false;"><img src="spwhitepad/whitepad_icon.gif" border="0" alt="手写板"></a></div>
       
<script language="JavaScript">
       
function spwhitepad(){
               
var win = window.open("spwhitepad/editor.htm?name=message","spwhitepadeditor","width=420,height=340,left=200,top=50,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no");
                win.focus();
        }

       
</script>
</td>
<!-- //手写板结束! -->




生成_editor,postreply,posttopic

然后:

1.将spwhitepad文件夹放到论坛根目录
2.将Discuz.Plugin.Writer.dll文件拷贝到BIN文件夹里
3.将showtopic.aspx拷贝到论坛根目录/aspx/1/下(我在默认风格下改的)


如果不是默认风格,其他风格的自己修改吧.
1.把模板showtopic.htm顶部加上 <%namespace Discuz.Plugin%>
2.查找(其实就是最上面那几行)


<script type="text/javascript">
var templatepath
= "{templatepath}";
var postminchars
= parseInt({config.minpostsize});
var postmaxchars
= parseInt({config.maxpostsize});
var disablepostctrl
= parseInt({disablepostctrl});
</script>



在下面加上:

<script tyle="text/javascript" language="javascript" src="spwhitepad/createShapes.js"></script>


3.生成showtopic.
4.查找aspx/你风格生成那个文件夹/showtopic.aspx,在其中查找post["message"].ToString().Trim(),并替换为:

Writer.whitepad(post["message"].ToString().Trim() ,loopi)


注意:如果你是老风格升级而来的自定义的风格,变量可能不是loopi,而是post__loop__id,具体的请看自己模版中的变量名.之所以没有模版中直接生成,好象是双参数的函数生成会出错,只好麻烦大家手动修改



所见即所得方式下返回代码修正,感谢"俺踏月色而来"修改
在WYSWYG模式下不能正确返回编辑代码,修改\spwhitepad\editor.htm,函数returnVal变为如下代码:


function returnVal(){
        var code
=make_code();
       
if(code){       
               
try{                       
                       
//var name = getQueryString('name',window.location.href);
                       
//var obj = window.opener.document.getElementsByName(name)[0];
                        window.opener.insertText('[whitepad]'+code+'[/whitepad]');
                       
//insertAtCaret(obj,'[whitepad]'+code+'[/whitepad]');               
                }
catch(e){
                        document.getElementById(
'value_codetext').value = '[whitepad]'+code+'[/whitepad]';
                        codeTableShow(
1);
                        alert(
"找不到输入框,返回失败.");
                       
return false;
                }

        }

        window.close();       
}



即可,这时候参数实际也就没用了。


附件: WriterPad For FrameWork1.1.rar

附件: WriterPad For FrameWork2.0.rar
1