2004年2月29日

我的時刻表作法

延續上一篇,說來說去我到最後還是用 PHP 直接 syndic8 ,而不是做成一個 RSS 檔然後再用 MTRSSFEED 來 syndic8。

因為找別人已經寫好的程式難度太高,所以只好借用別人已經寫好的「好程式」來做。說到這個好程式,它已經被一些 RSS feed 的 Aggregator 廣泛使用,叫做「magpierss」,像是 Zonble 那一套整合過的 Blog system 裡面有用到的 feedonfeed 就使用到 magpierss 的技術,所以我現在又要分享了,把我做時刻表的方式分享出來。

magpierss 這支程式用來 parse 一些 xml 文件,像是RDF、RSS、ATOM 都可以,而且如果想要從這支程式做一些延伸程式是一個相當好的選擇,彈性相當的大。想要研究的人可以下載這支程式之後參閱 htdoc 裡面的說明文件,在此不贅述。
步驟:
# 下載程式,你應該會看到有幾個檔案,我們需要的檔案是:rss_cache.inc、rss_fetch.inc、rss_parse.inc、rss_utils.inc 以及 exlib 資料夾內的 Snoopy.class.inc,把他們找出來。
# 依我的作法(當然如果你也可以照自己的方法來做,以下要講的全都是我的方法),把這些檔案的所有內容全部併在一起,以保持資料夾的清爽、精簡(方法是開啟每個檔案,把檔案內容全部複製起來,然後貼到目標檔案的最開頭那裡),我的選擇是併到 rss_fetch.inc 裡面。(這裡有我已經做好的成品,你可以直接下載,省去第二和第三個步驟
# 合併之後,找到以下幾行內容,然後刪掉:
require_once( MAGPIE_DIR . 'rss_parse.inc' );
require_once( MAGPIE_DIR . 'rss_cache.inc' );
require_once( MAGPIE_EXTLIB . 'Snoopy.class.inc');
# 把 rss_fetch.inc 重新命名成 forsyndic8.inc ,在選擇要出現時刻表的地方貼上這一段我寫的程式碼:連結
# 上面的設定值(有兩個,分別是快取資料儲存的地方以及你要 syndic8 的目標網址)請自己調整,也可以自己照著我所說明的變數決定要顯示些什麼東西。
# 完工,測試看看有沒有問題。
# 後記:如果說你要 syndic8 的目標主機關閉或者是線路狀況不佳,那麼這時候頁面就會出現的很慢。解決辦法就是自己再寫程式,把得到的目標資訊另外存成一個 RSS。如此一來,要更新的時候才更新,而不是每次都更新,程式自然就可以跑的比較快了(有空我再來用)。

1 則留言: