1/1页1 跳转到查看:6981
发新话题 回复该主题

[原创]插入高亮代码功能!(类似cnblogs)

[原创]插入高亮代码功能!(类似cnblogs)

可在帖子里插入各种代码高亮和折叠效果,可看本站的效果!

请到以下地址下载最新版

http://bbs.szblogs.com/showtopic-248.html
最后编辑winson 最后编辑于 2007-08-09 10:22:13

TOP

 

回复:[原创]插入高亮代码功能!(类似cnblogs)

能说一下Discuz.ForumPage.dll这个里面都改动了哪些了吗?我也改了些代码,不能直接用你的覆盖

TOP

 

回复: [原创]插入高亮代码功能!(类似cnblogs)



引用:
原帖由 iyond 于 2007-7-20 15:06:00 发表
能说一下Discuz.ForumPage.dll这个里面都改动了哪些了吗?我也改了些代码,不能直接用你的覆盖



其实只是改了editpost.aspx.cs、postreply.aspx.cs 和 posttopic.aspx.cs 3个文件,由于要使用代码插入功能,所以不能

直接限制了所有HTML代码,我只是将保存时限制HTML代码的语句关了,然后在JS里去限制一些危险的代码

posttopic.aspx.cs文件的修改:

找到:

postinfo.Message = Utils.HtmlEncode(ForumUtils.BanWordFilter(postmessage));


改为:

postinfo.Message = ForumUtils.BanWordFilter(postmessage);


如果想安全一些,可以改为:


//如果有插入代码,则不过滤
                if (DNTRequest.GetString("iscode")=="1")
                    postinfo.Message
= ForumUtils.BanWordFilter(postmessage);
               
else
                    postinfo.Message
= Utils.HtmlEncode(ForumUtils.BanWordFilter(postmessage));



但这样改后,当帖子里没有插入高亮代码时,原来的UBB代码也会失效,所以我后来是直接全部去掉,然

后另外在JS文件里去过滤危险代码了

以下editpost.aspx.cs 文件改法一样:

找到:

postinfo.Message = Utils.HtmlEncode(ForumUtils.BanWordFilter(DNTRequest.GetString("message")));


改为:

postinfo.Message = ForumUtils.BanWordFilter(DNTRequest.GetString("message"));


postreply.aspx.cs文件:

找到:
postinfo.Message = Utils.HtmlEncode(ForumUtils.BanWordFilter(postmessage));


改为:
postinfo.Message =ForumUtils.BanWordFilter(postmessage));


完成!

TOP

 

回复: [原创]插入高亮代码功能!(类似cnblogs)

1__topicinfo.Highlight = "";
2__topicinfo.Digest = 0;
3__topicinfo.Rate = 0;
4__topicinfo.Hide = hide;
5__topicinfo.Poll = 0;
6__topicinfo.Attachment = 0;
7__topicinfo.Moderated = 0;
8__topicinfo.Closed = 0;

谢谢啦,我这里可以了。不过象这样的,在编辑帖子的时候,会变成HTML源码。不知道你这里是不是这样。

TOP

 

回复:[原创]插入高亮代码功能!(类似cnblogs)

果然也是这样。编辑的时候,就有些乱套了。看来DiscuzNT还是要改进啊。

TOP

 

回复:[原创]插入高亮代码功能!(类似cnblogs)

是的,编辑状态我无法处理,我现在只能保证编辑提交后也可以正常显示,如果有高手能处理一下那就更完美了

而且有时在可视化状态下发帖,可能有些格式会有问题,所以我一般都尽量在代码状态下发,还有些BUG啦,本人技术有限,呵呵

TOP

 
1/1页1 跳转到
发表新主题 回复该主题