discuz 帖子模組用到的表及自動發帖函式

2022-03-23 07:40:28 字數 2152 閱讀 1647

discuz帖子模組用到的表:

帖子表:pre_forum_post

帖子表pid最大值設定表:pre_forum_post_tableid

帖子列表表:pre_forum_thread

帖子所在板塊表:pre_forum_forum

這幾個表之間的關係是,帖子表pre_forum_post存放帖子的詳細資訊,其pid通過pre_forum_post_tableid表獲得。帖子列表pre_forum_thread表決定了該條記錄是否顯示在列表中,如果此表中沒有相應的記錄帖子也就無法顯示在列表中了。帖子所在板塊表pre_forum_forum存放了對應板塊的發帖數量,今日發帖數以及最近發帖的標題等資訊。

好了,了解了這幾張表之間的關係後有了下面這個函式和測試例子。

<?php

if(!defined('in_discuz'))

echo "11111111111111111111111";

require_once discuz_root . './source/class/class_core.php';

$discuz->cachelist = $cachelist

;

$discuz->init();

$subject = '自行寫入帖子';

$message = '自行寫入帖子的訊息訊息訊息';

$thread['fid'] = 86;

$thread['subject'] = $subject

;

$thread['message'] = $message

;

$thread["authorid"]= 1;

$thread["author"]=$_g['member'][username];

$tid = addthread($thread

);

echo "*********** $tid **************";

/** 新增帖子

* @data 帖子陣列

* array('fid' => '板塊id',

'subject' => '標題',

'message' => '具體內容',

'authorid' => '使用者id',

'author' => '使用者名稱');

*/function addthread($data

)

return

$tid

; }

?>

addthread引數需要提供幾個必要的引數板塊id、標題、使用者名稱、使用者id和訊息內容。如果你想往哪個板塊自動生成乙個帖子,儘管呼叫addthread函式即可。

如果是外掛程式這裡有個需要特別注意的地方

1、forum_thread表,必須將special欄位的值設為127($thread["special"]= 127;)

2、forum_post表的message欄位。如果你的是外掛程式的話,最後面一定要加上

chr(0).chr(0).chr(0) . "外掛程式名稱"

否則,外掛程式的模板將無法呼叫。這是為什麼呢?這涉及到discuz外掛程式模板設計的問題。

原因分析:

./source/module/forum/forum_viewthread.php,大概700行左右,有這麼一段

if($_g['forum_thread']['special'] > 0 && (empty($_get['viewpid']) || $_get['viewpid'] == $_g['forum_firstpid'])) }}

}break

; }

}

原因就出在這。

1、special為127是才執行外掛程式的內容

2、由於外掛程式有很多,真麼知道是哪個外掛程式呢?因此,請看這行

$sppos = strpos($postlist[$_g['forum_firstpid']]['message'], chr(0).chr(0).chr(0));

discuz採用了chr(0).chr(0).chr(0)進行分割,獲取外掛程式名。如果無法獲取外掛程式名,則無法呼叫相應的模板,因而也就呼叫預設的系統模板了。

discuz 帖子模組用到的表及自動發帖函式

discuz帖子模組用到的表 帖子表 pre forum post 帖子表pid最大值設定表 pre forum post tableid 帖子列表表 pre forum thread 帖子所在板塊表 pre forum forum 這幾個表之間的關係是,帖子表pre forum post存放帖子的...

Z blog呼叫Discuz論壇最新帖子的方法

最近,我在子目錄下面安裝了乙個discuz論壇程式。大家都知道zblog是程式設計客棧asp,discuz是php,那麼asp的zblog應該如何實現在首頁呼叫php的discuz論壇最新帖子呢?經過湖南seo的努力,終於找到解決辦法 湖南seo使用的discuz x2 版本,下面將分為discuz...

Discuz 帖子重新整理後閱讀數增加隨機值的方法

有些站長對於帖子閱讀數增長緩慢的狀況很不滿足,希望能增加的快一些,本文就介紹一種閱讀數增加隨機值的方法!找到 source module forum forum viewthread.php檔案 搜尋 function viewthread updateviews tableid 將function...