大家都知道 seowhy 基礎指南右上角的 10 個最新帖子是從 seowhy 論壇調出來的。很多朋友都想要在自己網站的首頁呼叫二級目錄論壇的最新帖子,只要
能調出論壇 html 格式的網頁,首頁呼叫就很簡單了。

具體方法:

新建一個文字檔案,把以下程式碼儲存在文字檔案中,然後把它重新命名為 cron_makehtml_daily.php, 即 php 檔案,然後透過 ftp 工具把
cron_makehtml_daily.php 上傳到論壇目錄下的/source/include/cron/目錄中。

  1. <?php
  2. /*
  3. 呼叫論壇的 10 個最新帖子,輸出為 html 格式,透過計劃任務更新,更新時間可以在計劃任務中設定
  4. */
  5. if(!defined('IN_DISCUZ')) {
  6.         exit('Access Denied');
  7. }
  8. $newhtml = '';
  9. $query = DB::query("SELECT t.*, f.name FROM
    eddsbbs_forum_thread t, eddsbbs_forum_forum f WHERE t.fid=f.fid and
    f.fid IN('2','36','38','39','40','46') ORDER BY t.dateline DESC LIMIT 0,
    10");  //這裡要修改你自己想要呼叫的版塊 ID
  10. while($new = DB::fetch($query)) {
  11.         $newsubject = cutstr($new['subject'],48);
  12.         $newurl =
    'http://www.ecostet.com/eddsbbs/thread-'.$new['tid'].'-1-1.html';
  13.         $newhtml .= '<li><a target="_blank"
    href="'.$newurl.'">'.$newsubject.'</a></li>';
  14. }
  15. $newhtml = convert_data($newhtml);
  16. writehtml('newhtml.htm', $newhtml);
  17. //寫入 html 檔案
  18. function writehtml($file, $html) {
  19.         global $timestamp;
  20.         $yearmonth = gmdate('Ym', $timestamp + 8 * 3600);
  21.         $logdir = DISCUZ_ROOT.'./data/cache/';
  22.         $logfile = $logdir.$file;
  23.         if($fp = @fopen($logfile, 'w')) {
  24.                 @flock($fp, 2);
  25.                 fwrite($fp, "$html");
  26.                 fclose($fp);
  27.         }
  28. }
  29. function convert_data($data) {
  30.         include_once
    DISCUZ_ROOT.'./source/class/class_chinese.php';
  31.         $c = new Chinese('gbk', 'utf8');
  32.         $data = $c->Convert($data);
  33.         return $data;
  34. }
  35. ?>


面是夫唯老師提供給我的程式碼,因為我本身的伺服器環境是 utf-8 的,所以我註釋了 2 段程式碼,才顯示正常
第一段程式碼,是編碼轉換

  1. //$newhtml =
    convert_data($newhtml);

第二段程式碼,編碼轉換的方法

  1. /* function
    convert_data($data) {
  2.         include_once
    DISCUZ_ROOT.'./source/class/class_chinese.php';
  3.         $c = new Chinese('gbk', 'utf8');
  4.         $data = $c->Convert($data);
  5.         return $data;
  6. }*/


後登陸論壇後臺管理中心,工具-> 計劃任務,增加一個新的計劃任務名 「輸出 html」,名字可以自己取,然後點選這個任務的 「編輯」,在 「任務腳
本」 裡面輸入:cron_makehtml_daily.php,其他更新時間設定,自己選擇,也可以保持預設,點選 「提交」 。

然後,透過這個地址 http://www.ecostet.com/eddsbbs/data/cache/newhtml.htm,可以獲得 html 格
式的論壇最新 10 個帖子,如果顯示亂碼,切換到 UTF-8 編碼下檢視。

然後在首頁 index.php 中,新增一個方法:

  1. function
    readBbsHtml()  //output bbs latest topic
  2. {
  3.         $content =
    file("http://www.ecostet.com/eddsbbs/data/cache/newhtml.htm");
  4.         $content = implode("
    ",$content);
  5.         return $content;
  6. }


首頁需要呼叫的地方,呼叫 readBbsHtml() 方法即可。