讓 phpBB 論壇能輸出 RSS
西元 2004 年 8 月 27 日 早上 11 點 32 分
我們實驗室的討論區首頁 (加上 RSS 功能)
大概是 blog 中毒太深了,最近 lab 架了一個 phpBB 的討論區,因為沒有天天到開討論區看新文章的習慣,目前論壇的參與度也不是很高,所以決定讓我們的 phpBB 討論區能輸出 RSS (Introduction to RSS),然後用 bloglines (舊文 「除了 RSS Reader Panel,還有 Bloglines」) 訂閱討論區,省去檢查新文章的重覆動作。而且,該是讓 lab 的人認識和使用 RSS,RSS 應該不是 blogger 才需要懂的。 :’)
首先,如何讓 phpBB 產生 RSS。從 phpBB MODs (Modifications) 網頁的 Syndication 分類中找到了 RSS Content Syndicator,最新的版本 2.0.2 是去年十月釋出,作者是 nschindler,似乎是沒有再繼續更新維護了。
安裝 RSS Content Syndicator 真是很簡單,就如裡頭文件所寫的,一分鐘就可以完成。壓縮檔裡面的檔案有:
- rss.php: 產生 RSS 的主程式。
- rss_body.tpl: 產生 RSS 的樣板程式,裡頭是描述 RSS 的 XML 格式。
- rss.MOD.txt: 說明文件。
安裝的方法就是把 rss.php 放到 phpBB 根目錄下,rss_body.tpl 放到 templates/subSilver/ 目錄下,如果你的 template 不是選擇使用 subSilver,或者你還有安裝其它的 template 給使用者使用,也請把 rss_body.tpl 複製到這些 template 的根目錄下。然後根據討論區網址和路徑,連到下面的 URL:
http://xxx.yyy.zzz/phpBB2/rss.php
你可以看到從討論區輸出的 RSS,很簡單吧?rss.php 後面沒有加任何 querystring 的話 (譬如 f=1&t=1 之類的),預設是輸出整個討論區最新的 15 則文章 (主題或回覆文章)。如果你想要針對各個看板產生 RSS 的話,可以開啟你 phpBB2 的 index.php,找到下面的字串:
'FORUM_NAME' => $forum_data[$j]['forum_name'],
把它置換成:
'FORUM_NAME' => $forum_data[$j]['forum_name'] . ‘ <a href=”rss.php?f=’ . $forum_data[$j]['forum_id'] . ‘”><img src=”images/rss.gif” alt=”" style=”border: 0;” /></a>’,
記得把
放到你 phpBB2 的 images 目錄裡 (不是 templates/subSilver/images 目錄),如此一來,在瀏覽討論區看板時 (index.php),每個看板中文名稱後面都會出現一個
圖形,圖形的超連結就是這個看板的 RSS,如果要只輸出主題,不包含回覆文章,可以在 rss.php 後面加上:
t=1
有兩個以上的參數記得彼此要用 「&」 連接起來。
你可能也發現我們討論區除了
圖片之外,還有一個
圖片。沒錯,這也是我加上去的,這個圖片的超連結會直接連到 bloglines 訂閱你所選的看板或整個討論區 (當然你要有 bloglines 的帳號)。改法大同小異,這裡就不說明了,有問題的話,你可以再來問我。
除了看板名稱後面有輸出 RSS 功能,每個網頁論壇名稱後面也有
,點選圖片當然是輸出整個討論區的 RSS。改法是開啟 templates/subSilver/overall_header.tpl 這個檔案,找到下面的字串:
<td align="center" width="100%" valign="middle"><span class="maintitle">{SITENAME}</span><br /><span class="gen">{SITE_DESCRIPTION}<br /> </span></td>
把它置換成:
<td align="center" width="100%" valign="middle"><span class="maintitle">{SITENAME} <a href="rss.php"><img src="images/rss.gif" alt="" style="border: 0;" /></a></span><br /><span class="gen">{SITE_DESCRIPTION}<br /> </span></td>
就可以讓你論壇名稱後面也能有輸出全部討論區 RSS 的超連結圖片。Try It。 ![]()
(這是什麼?)
西元 2005 年 9 月 16 日 at 10:59 pm
To tristan:
我沒有用過 phpBB plus,抱歉。
(這是什麼?)
西元 2005 年 9 月 27 日 at 7:24 am
不知道能不能把图像只放在一角落.(请把上个贴子删了)
(這是什麼?)
西元 2005 年 9 月 27 日 at 11:51 pm
To 英国留学生论坛:
把圖像放在一角落?phpBB 在你手上,你要怎麼改都可以呀。
(這是什麼?)
西元 2006 年 5 月 3 日 at 9:24 am
嗨!您好!
真的非常感謝您的教學!小弟也是phpBB的愛用者
最近遇到一個問題因此也是google大神請我來這邊向您拜師學藝 XD
小弟的站php feed是「http://yi-fan.no-ip.org/phpBB2/rss.php」,
我使用 IE 去看這個連結是正常的
可是一旦我改用 Firefox 的即時書籤…
就會輸出錯誤 像這個樣子:
XML 分析錯誤: xml 宣告不在外部entity的開頭
位址: http://yi-fan.no-ip.org/phpBB2/rss.php
行號 3, 第 1 個字:
^
這問題困擾我很久了,我一直找不到原因…..不知大大您是否有遇過相同的問題呢?謝謝!
(這是什麼?)
西元 2006 年 5 月 7 日 at 1:40 am
To 依凡斯:
你的問題是出在…你輸出的 XML 文件前空了兩行空白。XML 文件的第一行一定要是「
<?xml version="1.0" encoding="big5" ?>」,否則可是會錯誤的喔。(這是什麼?)
西元 2006 年 5 月 19 日 at 11:16 am
謝謝你的回應~~
不過…..這個php feed「http://yi-fan.no-ip.org/phpBB2/rss.php」
他自行產生的rss內容
我沒辦法控制他生成空白耶
不過這還沒關係,可是奇怪的是
我用IE Browser去連 http://yi-fan.no-ip.org/phpBB2/rss.php 的時候是正常的!可生成 feed,但一旦用 firefox 就會出現以上的錯誤,所以我覺得是不是 firefox 的 rss 跟我的論談產生的格式不同的關係?
(這是什麼?)
西元 2006 年 5 月 21 日 at 2:29 pm
To 依凡斯:
為什麼會產生空白行呢?根據我的經驗,PHP 檔案裡 (也就是你的 rss.php) 的程式碼都會被替換成空白行,所以最後輸出結果都會有一些莫名奇妙的空白行。至於為什麼你的 feed 在 IE 下不會有錯誤,不知道你有沒有聽過 IE 本身設計就是可以容許「些微錯誤」的,一些小錯誤它可以忽略,或者是幫你改正。
(這是什麼?)
西元 2006 年 5 月 22 日 at 5:16 pm
是喔@@ 真是的…我覺得可能是我自己的phpBB的編碼被我給動到的關係吧!所以才會產生這樣的錯誤,我動到的原因很笨……是因為使用ultraedit的時候他問我要不要轉成dos format的時候我笨笨的給他按yes = = 可能就是這個原因把phpBB給搞爛了@@ http://yi-fan.no-ip.org ←不過還是能正常執行耶 @@ 真怪 就唯讀rss跑不起來(在firefox的live bookmark)一般的rss reader我是沒試過….
(這是什麼?)
西元 2007 年 2 月 6 日 at 5:03 pm
請問一下RSS Content Syndicator是否可以用在一般php的網頁上呢?謝謝!
(這是什麼?)
西元 2007 年 2 月 10 日 at 5:31 pm
To ping:
RSS Content Syndicator 是給 phpBB 使用的,不知你是要用在什麼方面上?或許軟體已經有人寫出來了喔。