論壇裡有人熟悉discuz X3.1嗎?怎樣將主題內容完整的顯示出來

來源:互聯網
上載者:User
論壇裡有人熟悉discuz X3.1嗎?怎樣將主題內容完整的顯示出來。


主題容易讀出來forum_thread表就行了,但容易表forum_post裡的內容不容易讀出來呀。

畢竟裡面含有[attach]4[/attach][img=500,666]http://pic.qiushibaike.com/system/pictures/5726/57264521/medium/app57264521.jpg[/img]

等,雜七雜八的資料。

人家官方不交流代碼,只交流怎樣安裝。我暈倒了。只能想到CSDN來了,看看有人能不能搞定這個。


回複討論(解決方案)

論壇裡有人熟悉discuz X3.1嗎?怎樣將主題內容完整的顯示出來。


主題容易讀出來forum_thread表就行了,但容易表forum_post裡的內容不容易讀出來呀。

畢竟裡面含有[attach]4[/attach][img=500,666]http://pic.qiushibaike.com/system/pictures/5726/57264521/medium/app57264521.jpg[/img]

等,雜七雜八的資料。

人家官方不交流代碼,只交流怎樣安裝。我暈倒了。只能想到CSDN來了,看看有人能不能搞定這個。


人家的代碼本身就含有一個這樣的轉換函式

@chinmo 版主

關鍵是我找到discuzcode()、parseattach()解析函數後,似乎沒用。目前還在找原因。

@chinmo 版主

關鍵是我找到discuzcode()、parseattach()解析函數後,似乎沒用。目前還在找原因。


暈死,你直接到他的文章內容頁去找不就知道他用的什麼函數了?這還糾結什麼

@chinmo

大版主呀,文章內容應該是source\module\forum\forum_viewthread.php這個檔案

可我找來找去,感覺就只有這兩個函數相關。但還沒有起到作用。

找了兩天,暈死

@chinmo

大版主呀,文章內容應該是source\module\forum\forum_viewthread.php這個檔案

可我找來找去,感覺就只有這兩個函數相關。但還沒有起到作用。

找了兩天,暈死


你再他模板找幹嘛,DZ的他基本都是用$post這個數組儲存資料的,你在他的控制器檔案裡輸出這個數組就知道是哪個欄位儲存著文章內容了,然後你在在他的控制器裡尋找他對這個欄位所用的處理函數不就可以了

做程式這點最起碼的尋找能力應該有的吧

@chinmo

大版主呀,我肯定不會去模板層找了,真的沒有你想象的那麼簡單,我用的是discuz X3.1utf8版本。

文章內容應該是source\module\forum\forum_viewthread.php這個檔案

大概903行左右:
parseattach($_G['forum_attachpids'], $_G['forum_attachtags'], $postlist, $skipaids);

用來解析附件的。

大概是在1228行:
$post['message'] = discuzcode($post['message'], $post['smileyoff'], $post['bbcodeoff'], $post['htmlon'] & 1, $_G['forum']['allowsmilies'], $forum_allowbbcode, ($_G['forum']['allowimgcode'] && $_G['setting']['showimages'] ? 1 : 0), $_G['forum']['allowhtml'], ($_G['forum']['jammer'] && $post['authorid'] != $_G['uid'] ? 1 : 0), 0, $post['authorid'], $_G['cache']['usergroups'][$post['groupid']]['allowmediacode'] && $_G['forum']['allowmediacode'], $post['pid'], $_G['setting']['lazyload'], $post['dbdateline'], $post['first']);

用來解析內容的

但不曉得為什麼就是不成功。

discuzcode 就是了用的這個函數
不成功的話
最簡單的排查就是在這個函數裡斷句輸出,看看他在那裡替換不成功

這樣也可以找出你具體是在什麼環節上弄錯了

各路PHP牛人,我把代碼奉上:
define('APPTYPEID', 2);
define('CURSCRIPT', 'forum');

require './source/class/class_core.php';
require './source/function/function_forum.php';

$cachelist = array();
C::app()->cachelist = $cachelist;
C::app()->init();



//$navtitle = str_replace('{bbname}', $_G['setting']['bbname'], $_G['setting']['seotitle']['forum']);
//$_G['setting']['threadhidethreshold'] = 1;


//$query = C::t('forum_thread')->fetch_all_for_guide1($view, $limittid, $tids, $_G['setting']['heatthread']['guidelimit'], $dateline);

//$query = C::t('forum_thread')->fetch_all_search('', 'forum_thread', 0,'', '', '');;
//print_r($query);

require_once libfile('function/discuzcode');
require_once libfile('function/attachment');
require_once libfile('function/forum');
$sql = "SELECT a.*, b.message,b.htmlon,b.bbcodeoff,b.smileyoff,b.parseurloff,b.pid,b.first FROM ".DB::table('forum_thread')." a left join ".DB::table('forum_post')." b on a.authorid=b.authorid and a.tid=b.tid and b.first=1 WHERE 1=1 AND a.heats>=1" ;
$sql = "SELECT a.*, b.message,b.htmlon,b.bbcodeoff,b.smileyoff,b.parseurloff,b.pid,b.first FROM ".DB::table('forum_thread')." a left join ".DB::table('forum_post')." b on a.authorid=b.authorid and a.tid=b.tid and b.first=1 WHERE a.tid>0 AND a.heats>=0 ORDER BY a.lastpost DESC LIMIT 600";
$query = DB::fetch_all($sql);
$postlist = array();
foreach($query as $post){
$post['message'] = discuzcode($post['message'], $post['smileyoff'], $post['bbcodeoff'], $post['htmlon'] & 1, $_G['forum']['allowsmilies'], $forum_allowbbcode, ($_G['forum']['allowimgcode'] && $_G['setting']['showimages'] ? 1 : 0), $_G['forum']['allowhtml'], ($_G['forum']['jammer'] && $post['authorid'] != $_G['uid'] ? 1 : 0), 0, $post['authorid'], $_G['cache']['usergroups'][$post['groupid']]['allowmediacode'] && $_G['forum']['allowmediacode'], $post['pid'], $_G['setting']['lazyload'], $post['dbdateline'], $post['first']);

$_G['forum_attachpids'][] = $post['pid'];
if(preg_match_all("/\[attach\](\d+)\[\/attach\]/i", $post['message'], $matchaids)) {
$_G['forum_attachtags'][$post['pid']] = $matchaids[1];
}
$postlist[$post['pid']] = $post;
}

parseattach($_G['forum_attachpids'], $_G['forum_attachtags'], $postlist);

print_r($postlist);

?>

死活找不到那裡有問題。

形如[img=500,666]http://pic.qiushibaike.com/system/pictures/5726/57264521/medium/app57264521.jpg[/img]
這樣的是 ubb 代碼
你可以找到 ubb 解碼程式相關的部分切入
他好像是 bbcode 類

我也是跟lz一樣,找到類似函數後沒法解析了。這裡看來大神沒空解釋這個問題

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.