麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > 建站經驗 > 正文

調用discuz編輯器發布帖子顯示html代碼的解決辦法

2024-04-25 20:43:54
字體:
來源:轉載
供稿:網友

在discuz二次開發中調用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/201507/22/112816z1znnm01wmozpvgb.png" target="_blank"><img src="http://127.0.0.1:8080/data/attachment/album/201507/22/112816z1znnm01wmozpvgb.png" border="0" alt=""></a>

而默認發帖的源碼為

頂頂頂頂頂[b][i][u]的頂頂頂頂頂[/u][/i][/b]頂頂頂頂的的[url=data/attachment/album/201507/22/112816z1znnm01wmozpvgb.png][img]data/attachment/album/201507/22/112816z1znnm01wmozpvgb.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').value;

$('uchome-ttHtmlEditor').value = p.document.getElementById('sourceEditor').value;

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

</script>

<!--{subtemplate home/editor_image_menu}-->

<textarea class="userData" name="content" id="uchome-ttHtmlEditor" style="height: 100%; width: 100%; display: none; 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:400px;border:1px solid #C5C5C5;position:relative;' border=0 frameborder=0 ></iframe>

</br>

<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);'>

</form>

<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>

<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;

}

</script>

其中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);

以上就是本文章的內容,希望對大家有所幫助

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 色天天综合网 | 成人国产精品一区二区毛片在线 | 亚洲国产色婷婷 | 久久久久久久久亚洲精品 | 草久在线观看视频 | 成人免费观看49www在线观看 | 999久久久国产999久久久 | 亚洲性生活视频 | 哪里可以看免费的av | 国产毛片在线 | 爱看久久| 神马视频我不卡 | 欧美精品免费一区二区三区 | 久久久青| 综合网日日天干夜夜久久 | 日韩黄色片免费看 | 精品久久久久久亚洲精品 | 天堂二区 | 高清一区二区在线观看 | 91精品国产综合久久男男 | 成人在线视频播放 | 久草最新在线 | 国产成人精品自拍视频 | 一级免费特黄视频 | 色视频在线观看 | 午夜久久电影 | 黄色大片在线免费观看 | 色悠悠久久久久 | 亚洲国产精品二区 | 国产精品刺激对白麻豆99 | 香蕉国产片| 国产精品视频一区二区三区四区国 | 久久精品国产清自在天天线 | 免费一级特黄毛片视频 | 国产精品视频2021 | 久久久www免费看片 亚洲综合视频一区 | 亚洲综合视频网 | 亚洲精品aⅴ中文字幕乱码 欧美囗交 | 欧美77| 久久精品亚洲欧美日韩精品中文字幕 | 日日摸夜夜添夜夜添牛牛 |