LifeType 中文開發論壇

開發 => 外掛程式精華區 => 主題作者是: WhiteCloud 於 四月 14, 2006, 11:32:41 下午



主題: (非外掛)--讓備份頁面也有 RSS
作者: WhiteCloud四月 14, 2006, 11:32:41 下午
因為之前(http://forum.lifetype.org.tw/index.php?topic=1124.0)寫了簡單的程式,輸出 LifeType 的文章成為靜態 HTML ,今天把這個靜態頁面也加上 RSS 的功能,以後只想看 HTML 版的人可以自行選擇 :-)

除了透過 LifeType 本身的 API 從資料庫找出文章,另外在網路上找到一個 FeedCreator (http://www.bitfolge.de/rsscreator-en.html),就可以方便地建立所需要的 RSS 檔案了。

※ 請注意:若您使用FeedCreator建立 RSS,而且使用 RSS0.3,1.0,2.0 這三種格式,請將 feedcreator.class.php 裡面的 497 行改為:

var $encoding = "utf-8";

之前的 plog_c.php 和 plog_index.php 輸出程式也要

加上如下的 HTML 標籤(xyzxyz請換成您的網域名稱):

<link rel="alternate" type="application/xml" title="RSS 2.0" href="http://xyzxyz.com/plog/html/rss20.xml">

才能讓使用者進入備份頁面時知道有 RSS 可用。

※ 本文適合 HTML 和 PHP 稍有基礎者
※ 備份頁面輸出範例在此(在此可用 firefox 訂閱備份頁面的RSS):http://sky-heart.com/plog/html/
※ RSS輸出範例:http://sky-heart.com/plog/html/rss20.xml

程式如下:

程式碼:
<? 
include("feedcreator.class.php");

$rss = new UniversalFeedCreator();
$rss->useCached();
$rss->title = "XYZ's Blog (HTML)";
$rss->description = "XYZ's Blog -- simple HTML version";
$rss->link = "http://www.xyzxyz.com/plog/1";
$rss->syndicationURL = "http://www.xyzxyz.com/plog/1/".$PHP_SELF;

    if (!defined( "PLOG_CLASS_PATH" )) {
        define( "PLOG_CLASS_PATH", dirname(__FILE__)."/");
    }

    include_once( PLOG_CLASS_PATH."config/config.properties.php" );
    include_once( PLOG_CLASS_PATH."class/dao/articles.class.php" );

// plog 的資料表字首
$strPlogPrefix = $config["db_prefix"];
// 輸出路徑,最後面要加斜線(目錄要設定為可讀寫,例如777)
$strRssPath = PLOG_CLASS_PATH."html/";
// 輸出檔名
$strOutput = "rss20.xml";
// 網誌名稱
$strBlogName = "XYZ's Blog";
// 網誌編號
$strBlogNumber = "1";

$strTableArticleText = $strPlogPrefix."articles_text";
$strTableArticle = $strPlogPrefix."articles";
$strTableUsers = $strPlogPrefix."users";

$sql = "select * from $strTableArticleText,$strTableArticle ";
$sql = $sql."where $strTableArticleText.article_id = $strTableArticle.id ";
$sql = $sql."and $strTableArticle.blog_id = $strBlogNumber ";
$sql = $sql."and $strTableArticle.status = 1 ";
$sql = $sql."order by article_id desc";

    $articles = new Articles();
    $result = $articles->getBlogArticlesByQuery( $sql );   

$i=0;
foreach( $result as $article ) {
    $item = new FeedItem();
    $item->title = $article->getTopic();;
    $item->link = "http://xyzxyz.com/plog/html/".$article->getId().".html";
    $item->description = $article->getText();
    $item->date = $article->getDate();
    $item->source = "http://xyzxyz.com/plog/html/";
    $item->author = "XYZ";
   
    $rss->addItem($item);
    $i++;
    if ( $i > 20 )
      break;
}

$rss->saveFeed("RSS2.0", $strRssPath.$strOutput);
?>


主題: Re: (非外掛)--讓備份頁面也有 RSS
作者: maomaode四月 19, 2006, 11:41:12 下午
这几个功能很不错, 可不可以做出插件的方式?
您目前是通过什么方式来自动生产出html页面呢? 手工的方式, 还是发表文章后自动生产html呢?


主題: Re: (非外掛)--讓備份頁面也有 RSS
作者: WhiteCloud四月 20, 2006, 01:57:33 下午
做成 PlugIn 的話最近大概沒辦法....有志者歡迎 DIY,再分享給大家。

如果你是指 RSS 頁面的話,這支程式本身就會自動輸出成為 RSS 格式,檔名自訂。

我每次寫一篇文章後,手動執行這支程式。還沒研究從哪邊改,可以讓文章發表後自動生成備份 HTML 和備份頁面的 RSS。

也不太想動到太多 LifeType 本身的程式碼,萬一以後要升級蠻麻煩的,都要重新修改。