国产欧美二区三区-国产欧美高清-国产欧美国产精品第二区-国产欧美国产精品第一区-小说区 图片区-小说区 综合区 都市激情

當(dāng)前位置: 首頁(yè) > 站長(zhǎng)資訊 > 正文頁(yè)面

調(diào)用discuz編輯器發(fā)布帖子顯示html代碼的解決辦法

在discuz二次開(kāi)發(fā)中調(diào)用discuz的編輯器是一件在所難免的事情,然而discuz的開(kāi)發(fā)文檔少得可憐;因此在二次開(kāi)發(fā)的時(shí)候查看源碼和各種莫名其妙的問(wèn)題著實(shí)令人摸不著頭腦。前面講解了一下調(diào)用discuz編輯器的實(shí)例 調(diào)用discuz編輯器再也不是問(wèn)題了 。然而這只是一個(gè)粗糙的例子,而discuz帖子存儲(chǔ)在數(shù)據(jù)庫(kù)的卻是自定義的bbcode而不是正常的html代碼。這也就導(dǎo)致直接調(diào)用discuz的編輯器發(fā)帖顯示出來(lái)的帖子成了html源碼。jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

網(wǎng)上找了很久也沒(méi)找到相應(yīng)的問(wèn)題,最后通過(guò)數(shù)據(jù)庫(kù)的字段對(duì)比才知道問(wèn)題的所在。jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

1、問(wèn)題所在jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

調(diào)用編輯器編輯的源碼jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

頂頂頂頂頂<b><i>的頂頂頂頂頂</i></b>頂頂頂頂?shù)牡?lt;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>jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

而默認(rèn)發(fā)帖的源碼為jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

頂頂頂頂頂[b][i][u]的頂頂頂頂頂[/u][/i][/b]頂頂頂頂?shù)牡腫url=data/attachment/album/201507/22/112816z1znnm01wmozpvgb.png][img]data/attachment/album/201507/22/112816z1znnm01wmozpvgb.png[/img][/url]jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

于是網(wǎng)上找了一通,最后才知道這是discuz的特色。對(duì)html代碼進(jìn)行了特殊的處理,其采用了bbcode的方式進(jìn)行二次編碼,顯示帖子的時(shí)候再將bbcode編碼轉(zhuǎn)換成正常的html代碼。discuz這么做的目的也顯而易見(jiàn),最終是為了提高整個(gè)應(yīng)用的安全性。jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

2、提交前對(duì)html進(jìn)行bbcode編碼jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

static/js/bbcode.js中的html2bbcode可以講正常的html編碼轉(zhuǎn)換成discuz自定義的bbcode編碼jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

最后在./static/image/editor/editor_function.js中的edit_save()找到了獲取編輯器內(nèi)容,并設(shè)置編碼jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

var p = window.frames['uchome-ifrHtmlEditor'];jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

var obj = p.window.frames['HtmlEditor'];jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

var status = p.document.getElementById('uchome-editstatus').value;jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

$('uchome-ttHtmlEditor').value = p.document.getElementById('sourceEditor').value;jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

3、完整的調(diào)用方式jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

<script type="text/javascript" src="{$_G['setting']['jspath']}forum_post.js?{VERHASH}"></script>jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

<script src="static/js/bbcode.js?{VERHASH}" type="text/javascript"></script>jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

<script type="text/JavaScript">jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

var fid = {$_G['fid']};//插件所在版塊IDjWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

</script>jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

<!--{subtemplate home/editor_image_menu}-->jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

<textarea class="userData" name="content" id="uchome-ttHtmlEditor" style="height: 100%; width: 100%; display: none; border: 0px"></textarea>jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

<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>jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

</br>jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

<input type="hidden" name="formhash" id="formhash" value="{FORMHASH}" />jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

<input type="hidden" name="posttime" id="posttime" value="{$posttime}" />jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

<input type="hidden" name="wysiwyg" id="e_mode" value="1" />jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

<input type="hidden" name="special" value="127" />jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

<input type="hidden" name="specialextra" value="plugin_test" />jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

<input type="hidden" id="message" name="message" value="" />jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

<input id='submit_editsubmit' class='btn' type='button' value='提交' name='editsubmit' onClick='validate(this);'>jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

</form>jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

<script type="text/javascript" src="static/image/editor/editor_base.js?{VERHASH}"></script>jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

<script type="text/javascript" src="static/image/editor/editor_function.js?{VERHASH}"></script>jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

<script type="text/javascript">jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

var textobj = $('uchome-ttHtmlEditor');jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

var wysiwyg = (BROWSER.ie || BROWSER.firefox || (BROWSER.opera >= 9)) && parseInt('1') == 1 ? 1 : 0;jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

var allowswitcheditor = parseInt('1');jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

var allowhtml = parseInt('0');jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

var allowsmilies = parseInt('1');jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

var allowbbcode = parseInt('1');jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

var allowimgcode = parseInt('1');jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

var simplodemode = parseInt('0');jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

var fontoptions = new Array("宋體", "新宋體", "黑體", "微軟雅黑", "Arial", "Verdana", "Mingliu", "Helvetica", "Trebuchet MS", "Tahoma", "Impact", "Times New Roman", "仿宋,仿宋_GB2312", "楷體,楷體_GB2312");jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

var smcols = 8;jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

var custombbcodes = new Array();jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

</script>jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

<script type="text/JavaScript">jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

function validate(obj) {jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

var mcpp = window.frames['uchome-ifrHtmlEditor'];jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

var mcpobj = mcpp.window.frames['HtmlEditor'];jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

edit_save();jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

jQuery("#message").val(html2bbcode(mcpobj.document.body.innerHTML));jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

window.onbeforeunload = null;jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

obj.form.submit();jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

return false;jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

}jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

</script>jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

其中jQuery("#message").val(html2bbcode(mcpobj.document.body.innerHTML));是將html轉(zhuǎn)成bbcode。jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

4、這里只是web前端進(jìn)行了bbcode的編碼。然而如果有需要也可以在php處理函數(shù)中進(jìn)行bbcode的轉(zhuǎn)換jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

$str = "<b><i>的的頂頂頂頂頂?shù)捻旐旐旐旐旐旐旐旐數(shù)牡?lt;/i></b>";jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

//html轉(zhuǎn)成bbcodejWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

require_once libfile('function/editor');jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

echo html2bbcode($str);jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

echo "</br>";jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

$str2 = '[b][i]的的頂頂頂頂頂?shù)捻旐旐旐旐旐旐旐旐數(shù)牡腫/i][/b]';jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

//將bbcode轉(zhuǎn)成htmljWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

require_once libfile('function/discuzcode');jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

echo discuzcode($str2, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0);jWy網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口

  

此文由 網(wǎng)站目錄_網(wǎng)站網(wǎng)址收錄與提交入口 編輯,未經(jīng)允許不得轉(zhuǎn)載!:

相關(guān)文章