[Lifetype] RSS 播放區塊 與 修正

| 八月 07, 2008 | 沒有迴響| 沒有引用| 3225 reads | Size: L, M, S | Edit: P, C, R |
| Category: LifeType. and Tags: . |

    前兩天想要玩玩看怎麼在 Lifetype 加上 RSS 的播放功能。比較常見的是利用 NewsGator 來做、或是多站台的 RSS 聯播。

    不過,翻找了一下,在 Lifetype 的官方 Wiki 找到了這篇「How to use the RSS aggregator」,裡面有語法可以直接在網誌裡面做 RSS 播放,不過直接用這個方法來放中文的 RSS,會發現都是亂碼。

    搜尋了一下,在 LSS 老師那邊看到了「關於 MagpieRSS」,裡面有提到了關於編碼的問題。不過繼續追蹤下去,發現老師早在 1.0.x 的時代就已經 BugReport 了,而且看紀錄也已經修復了。不過我在去找相關的幾個檔案,發現被設定為 UTF-8 的部份,又被改回來了。唉唉,好吧,乖乖自己重新修....

    這個亂碼的問題,是因為生成 RSS 物件的時候,預設的輸出編碼是 ISO-8859-1;而大部分的華文部落格已經都是 UTF-8 格式了 :( !

    首先找到 class/xml/rssparser/magpierss 下的  rss_fetch.inc,找到 357 行左右的:

    if ( !defined('MAGPIE_OUTPUT_ENCODING') ) {
        define('MAGPIE_OUTPUT_ENCODING', 'ISO-8859-1');
    }

    將這邊預設的 ISO-8859-1 直接改為 UTF-8:

    if ( !defined('MAGPIE_OUTPUT_ENCODING') ) {
        define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');
    }

    這樣就不會有亂碼的問題了。

    另外,在這行的上下,各是一些預設值的定義,可以參考 LSS 老師的文章來修改定義。

     

    完成上面的修改後,就可以參考 Lifetype Wiki 的語法,例如:

    {if $rss->parse("http://feeds.feedburner.com/ajer001")}
      {foreach from=$rss->getItems() item=rssItem}
        <a href="{$rssItem->getLink()}">{$rssItem->getTitle()}</a>
      {/foreach}
    {else}
      There was an error parsign the feed!
    {/if}

    這樣就可以完成 RSS 的播放 :)

     

    不過,要方便,好像還是用 NewsGator 來做比較好 XD


    隨機文章:
    » [Lifetype] 密碼保護修正
    » [Ubuntu] Ubunt 8.04 的地雷 (2008/03/02)
    » [瀏覽器] Sleipnir 2 beta5 / Firefox 1.5 中文beta - Released
    » [Ubuntu] Ubuntu 8.10 Intrepid - Lighting Talk
    » [Lifetype] 讓 最新文章、分類、熱門文章、按月彙整、連結、最新迴響 等列表收折


Leave A Comment: