不得不說Discuz真的非常強大,以至于不懂任何技術的人都可以操作它,菜鳥都可以用Discuz自帶的DIY功能實現一些基本的數據調用及風格。說到數據調用,使用過Discuz的站長都知道它后臺自帶js數據外調功能,很多站長在實現數據外調時直接拿這個自帶功能去實現。但我覺得自帶雖然好但是有那么點缺陷:第一,據說js調用不是太好,呵呵;第二,自帶的調用方式就是內置的那些,也就是不可能滿足你很多需求。
所以今天我要講的就是用SQL語句實現數據外調,然后再用PHP腳本調用數據到前端實現。我是一個非專業的選手,對很多東西都有一點了解但不精通,唯獨數據庫還算可以。所以今天我們只講實現功能,至于前端的一個樣式風格大家自己去看著辦吧。
案例一:外調5條Discuz門戶資訊欄目推薦文章(按發表時間降序排列)
代碼如下:
$index_bbs_new=array();
$bbs_sql="SELECT aid,title,username FROM `pre_portal_article_title` where catid=1 and tag=128 order by dateline desc limit 0,5";
$b=$db->query($bbs_sql);
while($req=$db->fetch_array($b))
{
$req['aid'] = $req['aid'];
$req['title'] = $req['title'];
$req['username'] = $req['username'];
$req['url'] = "bbs/portal.php?mod=view&aid=$req[aid]";
$index_bbs_new[] = $req;
}
SQL代碼解釋:上面的sql語句中查詢語句最基本的了,那就是:
select <字段名1>,<字段名2>,.... from 表名(如果是數據庫間調用請用數據庫名.表名) where 條件
上面的字段我們可以查詢Discuz公開的數據詞典,就在表pre_portal_article_title中aid表示文章的唯一ID,title表示文章的標題,username表示發布文章的用戶的用戶名。上面這條語句翻譯成我們通常交流就語句就是,在表pre_portal_article_title中查詢文章ID、文章標題、文章作者,查詢條件是欄目ID為1 (catid=1),文章標簽為推薦( tag=128),按照發布時間降序排序(order by dateline desc)",記錄數為5條( limit 0,5)。
實例二:調用論壇最新精華帖5條(這個Discuz后臺調用有)
調用語句如下(當然樣式是取自我做的這個頁面),代碼如下
$index_bbs=array();
$bbs_sql="SELECT tid,subject,author FROM `pre_forum_thread` where digest>0 order by dateline desc limit 0,5";
$b=$db->query($bbs_sql);
while($req=$db->fetch_array($b))
{
$req['tid'] = $req['tid'];
$req['subject'] = $req['subject'];
$req['author'] = $req['author'];
$req['url'] = "bbs/forum.php?mod=viewthread&tid=$req[tid]";
$index_bbs[] = $req;
}
有了實例一的解釋,這里的語句大家查了數據詞典就會懂意思的。
本文來源:http://www.cqsihan.com(轉載請注明出處!)
新聞熱點
疑難解答