如何在discuz帖子中使用htmlhtml颜色代码怎么使用

  在discuz二次开发中调用discuz的编辑器是一件在所难免的事情,然而discuz的开发文档少得可怜;因此在二次开发的时候查看源码和各种莫名其妙的问题着实令人摸不着头脑。前面讲解了一下调用discuz编辑器的实例。然而这只是一个粗糙的例子,而discuz帖子存储在数据库的却是自定义的bbcode而不是正常的html代码。这也就导致直接调用discuz的编辑器发帖显示出来的帖子成了html源码。
  网上找了很久也没找到相应的问题,最后通过数据库的字段对比才知道问题的所在。
  1、问题所在
  调用编辑器编辑的源码
顶顶顶顶顶&b&&i&的顶顶顶顶顶&/i&&/b&顶顶顶顶的的&a href="http://127.0.0.1:8080/data/attachment/album//znnm01wmozpvgb.png" target="_blank"&&img src="http://127.0.0.1:8080/data/attachment/album//znnm01wmozpvgb.png" border="0" alt=""&&/a&
  而默认发帖的源码为
顶顶顶顶顶[b][i][u]的顶顶顶顶顶[/u][/i][/b]顶顶顶顶的的[url=data/attachment/album//znnm01wmozpvgb.png][img]data/attachment/album//znnm01wmozpvgb.png[/img][/url]
  于是网上找了一通,最后才知道这是discuz的特色。对html代码进行了特殊的处理,其采用了bbcode的方式进行二次编码,显示帖子的时候再将bbcode编码转换成正常的html代码。discuz这么做的目的也显而易见,最终是为了提高整个应用的安全性。
  2、提交前对html进行bbcode编码
  static/js/bbcode.js中的html2bbcode可以讲正常的html编码转换成discuz自定义的bbcode编码
  最后在./static\image\editor\editor_function.js中的edit_save()找到了获取编辑器内容,并设置编码
var p = window.frames['uchome-ifrHtmlEditor'];
var obj = p.window.frames['HtmlEditor'];
var status = p.document.getElementById('uchome-editstatus').
$('uchome-ttHtmlEditor').value = p.document.getElementById('sourceEditor').
  3、完整的调用方式
&script type="text/javascript" src="{$_G['setting']['jspath']}forum_post.js?{VERHASH}"&&/script&
&script src="static/js/bbcode.js?{VERHASH}" type="text/javascript"&&/script&
&script type="text/JavaScript"&
var fid = {$_G['fid']};//插件所在版块ID
&!--{subtemplate home/editor_image_menu}--&
&textarea class="userData" name="content" id="uchome-ttHtmlEditor" style="height: 100%; width: 100%; display: border: 0px"&&/textarea&
&iframe src='home.php?mod=editor&charset={CHARSET}&allowhtml=1&isportal=0' name='uchome-ifrHtmlEditor' id='uchome-ifrHtmlEditor'
scrolling='no' style='width:85%;height:400border:1px solid #C5C5C5;position:' border=0 frameborder=0 &&/iframe&
&input type="hidden" name="formhash" id="formhash" value="{FORMHASH}" /&
&input type="hidden" name="posttime" id="posttime" value="{$posttime}" /&
&input type="hidden" name="wysiwyg" id="e_mode" value="1" /&
&input type="hidden" name="special" value="127" /&
&input type="hidden" name="specialextra" value="plugin_test" /&
&input type="hidden" id="message" name="message" value="" /&
&input id='submit_editsubmit' class='btn' type='button' value='提交'
name='editsubmit' onClick='validate(this);'&
&script type="text/javascript" src="static/image/editor/editor_base.js?{VERHASH}"&&/script&
&script type="text/javascript" src="static/image/editor/editor_function.js?{VERHASH}"&&/script&
&script type="text/javascript"&
var textobj = $('uchome-ttHtmlEditor');
var wysiwyg = (BROWSER.ie || BROWSER.firefox || (BROWSER.opera &= 9)) && parseInt('1') == 1 ? 1 : 0;
var allowswitcheditor = parseInt('1');
var allowhtml = parseInt('0');
var allowsmilies = parseInt('1');
var allowbbcode = parseInt('1');
var allowimgcode = parseInt('1');
var simplodemode = parseInt('0');
var fontoptions = new Array("宋体", "新宋体", "黑体", "微软雅黑", "Arial", "Verdana", "Mingliu", "Helvetica", "Trebuchet MS", "Tahoma", "Impact", "Times New Roman", "仿宋,仿宋_GB2312", "楷体,楷体_GB2312");
var smcols = 8;
var custombbcodes = new Array();
&script type="text/JavaScript"&
function validate(obj) {
var mcpp = window.frames['uchome-ifrHtmlEditor'];
var mcpobj = mcpp.window.frames['HtmlEditor'];
edit_save();
jQuery("#message").val(html2bbcode(mcpobj.document.body.innerHTML));
window.onbeforeunload = null;
obj.form.submit();
return false;
  其中jQuery("#message").val(html2bbcode(mcpobj.document.body.innerHTML));是将html转成bbcode。
  4、这里只是web前端进行了bbcode的编码。然而如果有需要也可以在php处理函数中进行bbcode的转换
$str = "&b&&i&的的顶顶顶顶顶的顶顶顶顶顶顶顶顶顶的的&/i&&/b&";
//html转成bbcode
require_once libfile('function/editor');
echo html2bbcode($str);
echo "&/br&";
$str2 = '[b][i]的的顶顶顶顶顶的顶顶顶顶顶顶顶顶顶的的[/i][/b]';
//将bbcode转成html
require_once libfile('function/discuzcode');
echo discuzcode($str2, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0);
&  5、编辑帖子时出现&您的提交带有不合法参数,谢谢合作&的解决办法
  如果自定义调用discuz编辑器,存储到数据库的时候是bbcode格式。然而,如果编辑的时候也是自定义调用discuz编辑器的话,bbcode格式也就无法正常显示了。如果在php里面直接转换成正常的html格式,这时又会触发discuz的安全机制,无法正常提交。如果配到这样的问题要怎么解决呢?我们可以采用onload事件进行处理,也就是页面加载完成以后用bbcode2html将bbcode编码的内容转换成正常的html再赋值给编辑器。
window.onload = function(){
var mcpp = window.frames['uchome-ifrHtmlEditor'];
var mcpobj = mcpp.window.frames['HtmlEditor'];
mcpobj.document.body.innerHTML = bbcode2html("{$thread['message']}");//加载完成时将bbcode内容转换成正常的html代码并赋值
阅读(...) 评论()查看: 9246|回复: 9
如何开启发帖允许使用html代码
本帖最后由 下砂 于
15:33 编辑
如题,等答案.
比如,能够在论坛上插入 youku 网的 flash 电影。怎么实现?
他们的代码分别是:&embed src=&/player.php/sid/XMTUyNjI0MDAw/v.swf& quality=&high& width=&480& height=&400& align=&middle& allowScriptAccess=&sameDomain& type=&application/x-shockwave-flash&&&/embed&复制代码或者&&
我如何将上述falsh 插入到自己论坛中?
论坛是我自己的。
后台 =& 版块 =& 版块编辑中 =& 帖子选项 =& 设置允许使用[audio] [video] [flash] 等多媒体代码
参考楼上方法
使用html代码的话 需要用户组和版块都开启允许使用 发帖时勾选使用html代码
啊!原来是这样的!
谢谢了~我找了好久呢。
严重支持楼上!
我的问题就是设置了用户组,没有设置版块开启允许发布
帮了我好大忙,谢谢了
Powered byDiscuz!如何开启使用HTML、主题分类、分类信息
  中国领先的社区平台与服务提供商康盛创想(Comsenz)旗下核心产品Discuz!新版近期正式发布。全新推出的Discuz! 7.2版本从用户注册登陆应用、社区论坛前后管理两方面着眼,增加和改进了30多处与社区门户运营密切的功能与细节,实现了邮箱登陆、分类信息检索、版块绑定域名等与运营密切的应用方式。
  本篇教程较以往教程,侧重在于站长使用,以前教程多为开发相关教程,但是看到好多新手站长对于HTML的开启、使用,分类信息的开启、使用都很茫然,不知道从哪里下手,或者自己设置了但是却不能正常使用。希望下面的讲解对这些新手站长有所帮助!
  开启使用Html、主题分类、分类信息 (注:开启HTML可能会造成安全隐患,可以对用户组选择性开启,慎用!)
  开启使用HTML:版块开启HTML并使用HTML必须要三者配合开启,即:版块开启HTML、用户组权限开启HTML、发帖时候勾选HTML,三者缺一不可!
  版块开启HTML:后台路径:后台 -- 版块 -- 编辑版块 -- 帖子选项 -- 允许使用HTML代码: 勾选“是”: 
  用户组开启HTML:后台路径:后台 -- 用户 -- 用户组 -- “详情” -- 帖子相关 -- 允许使用HTML代码:勾选“是”:  
  发帖勾选HTML:发帖时候点击发帖框下面的“更多设定”,然后勾选“HTML代码”,如下图: 
  主题分类
  主题分类、分类信息的演示效果如下图,其中红色“已解决”、“已答复”是主题分类,“插件索取”、“问题求助”是分类信息,下图第二个是分类信息模型贴内演示: 
  主题分类后台路径:后台 -- 版块 -- 主题分类(左侧菜单中) -- 添加分类: 
  添加主题分类后需要跟版块关联起来,这样才能在版块内使用主题分类,后台路径:后台 -- 版块 -- 编辑 --主题分类: 
  分类信息
  Discuz!系统内置的分类信息是一个特殊的模块,具体效果如下图演示: 
  分类信息的使用方法跟主题分类相似,必须先开启并添加分类信息模型,然后在相关版块开启关联,具体方法步骤如下:
  首先,开启并新增一个分类信息,后台路径:后台 -- 版块 -- 分类信息类别(如下图): 
  新增一个分类信息后,返回添加的该分类信息列表,点击“详情”即可对该条分类信息模型进行编辑修改。如下图所示:  
  仔细看上图,“选择分类信息模板”这里可以选择系统预设的几种模型,如:房屋交易信息、车票交易信息、兴趣交友信息、公司招聘信息等,如果预设这几种模型不能满足您的需求,可以往下看,自定义分类信息。在添加分类信息选项栏目中可以勾选您要添加到该分类信息中的选项,勾选后自动出现在“已有选项”栏目中,在“已有选项”栏目中可以对这些选项进行设置,如:是否必填、参与搜索等。需要注意的是,右边的“插入模板”,可以点击一下会看到,点击“插入模板”,会自动将该条选项插入到分类信息模版中,其中,例如name,用化括弧括起来的就是该分类信息选项的名称,即:姓名,[namevalue]用方括弧括起来的就是该选项的值,即用户发帖时候填写的内容。当然,默认插入的模板是列表的形式,如果自己不满意默认的样式,可以自定义模板样式,该处模板支持HTML,想要分类信息在帖子里显示的更加漂亮,就自己写模板代码吧。
  另外,如果上面分类信息选项中,没有您想增加的选项,您也可以新增一个自定义的选项,比如,要添加一个“持有资产”选项,后台路径:后台 -- 版块 --
相关报道:
新闻热线:010-
责任编辑:
名企动态: |
标志着Windows迈出个性化计算的第一步……
本站特聘法律顾问:于国富律师
Copyright (C) 1997-

我要回帖

更多关于 html颜色代码怎么使用 的文章

 

随机推荐