先贴个截图,比较毛糙,有BUG或者其他问题,请回复

使用方法:
首先修改编辑器_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[i][5] + '_' + i + '" onClick="discuzcode(\'custom' + custombbcodes[i][5] + '_' + i/*custombbcodes[i][0]*/ + '\')" onMouseOver="buttonContext(this, \'mouseover\')" onMouseOut="buttonContext(this, \'mouseout\')"><img title="' + custombbcodes[i][2] + '" alt="' + custombbcodes[i][2] + '" src = "editor/images/' + custombbcodes[i][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();
}
即可,这时候参数实际也就没用了。.net framework 2.0版本插件
附件: spwhitepad.rar (2007-5-29 15:19:16, 26.07 K)
该附件被下载次数 550
.net framework 2.0的请再下载下面的DLL,更新修复一个楼层内两幅画的BUG.详见24楼
点击下载.net framework 1.1的请下载1.1版本的插件,详见26楼点击下载源代码很简单.手写板是下的纯粹空间的那个,我只是小做修改使DNT能用,如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
namespace Discuz.Plugin
{
public class Writer
{
public static string whitepad(string str, int i)
{
Regex r;
Match m;
int j = 0;
r = new Regex(@"(\[whitepad\])([ \S]*?)(\[\/whitepad\])", RegexOptions.IgnoreCase | RegexOptions.Singleline);
for (m = r.Match(str); m.Success; m = m.NextMatch())
{
str = str.Replace(m.Groups[0].ToString(), "<br \\><input type=\"hidden\" id=\"value_spwhitepad_" + i + "_" + j + "\" value=\"" + m.Groups[2].ToString() + "\"><iframe src=\"spwhitepad/show.htm\" name=\"spwhitepad_" + i + "_" + j + "\" frameborder=\"0\" style=\"width:400px;height:200px;margin:5px;border:1px dashed #CCCCCC;\" scrolling=\"no\"></iframe><br \\>");
j++;
}
return str;
}
}
}
广告时间:我自己的AD欢迎访问我的个人博客 BoyLee's Blog {卡西莫多}私人志 http://boylee.netDST官方的AD