Home > PHP | rhaco > rhacoを使ってblogにtumblrの更新情報(RSS)を載せる

rhacoを使ってblogにtumblrの更新情報(RSS)を載せる

rhacoには強力なフィードパサー機能があります(とはいえ、他のフレームワークを使ったことは無いので、比較はできませんけど)。
これを使って、自分のブログ(WordPress)にtumblrの更新情報を載せてみました。
参考にしたのはこちら。

前回と同様にセットアップまわりは飛ばすことにします(笑)
「キャッシュ」に関しては「使用する」ことにしました。

フィルターの作成

今回、データとして引っ張ってくるのは更新日時、タイトル、リンクの3つです。
その中でタイトルに関して、tumblrは長くなることが多いので、ある程度の長さ以降は切ることにします。
この動作をフィルターとして制作します。
以下のソースをプロジェクトフォルダ/library以下にFeedFilter.phpとして保存します。

・プロジェクトフォルダ/library/FeedFilter.php


<?php
Rhaco
::import(“lang.StringUtil”);    //文字列を扱うユーティリティをインポート

class FeedFilter{
        function
cutString($arg1){
                
$filter = new StringUtil();
                
$buf = explode(‘—’,$arg1);
                return
$filter->substring($buf[0],0,30).“…”;    //30文字までを返す
        
}
}
?>

文字列を扱うユーティリティは「rhacoのAPIレファレンス」で機能を調べました。

explode(特定の文字列で、文字列を分割する)に相当する機能を使いたかったのですが、APIレファレンスでは発見できませんでしたので、PHPのexplode関数を直接使いました。

VIEW(index.php)の作成

プロジェクトフォルダ直下に以下のソースをindex.phpとして保存します。

・プロジェクトフォルダ/index.php


<?php
require_once(“./__init__.php”);
Rhaco::import(“lang.DateUtil”);
Rhaco::import(“tag.HtmlParser”);
Rhaco::import(“tag.feed.FeedParser”);
Rhaco::import(“FeedFilter”); // <- filterクラスをimport

$parser = new HtmlParser();
$feed   = new FeedParser();

$items  = $feed->getItem(array(
  
“http://fragment.planet-ape.net/rss”,
));

$parser->setVariable(“items”,$items);
$parser->setVariable(“filter”,new FeedFilter()); // <- filterをテンプレートで利用できるように定義
$parser->setVariable(“DateUtil”,new DateUtil()); // <- DateUtilをテンプレートで利用できるように定義
$parser->write(“sample.html”);

?>

先ほど作った「filter」とrhacoのAPIである「DateUtil(日付関係ユーティリティ)」をテンプレート上で使用するため上記の「テンプレートで・・・」のように定義します。

テンプレートの作成

プロジェクトフォルダ/resources/templates/以下にsample.htmlを作成します。
ブログに表示するためのものなので、htmlの一部(テーブル)のみとなっています。

・プロジェクトフォルダ/resources/templates/sample.html

<table width=”100%” border=”0″ cellpadding=”0″ cellspacing=”0″>
<tr>
<th class=”summary-date”>date</th>
<th scope=”col”>title</th>
</tr>
<rt:loop param=”{$items}” var=”item”>
<tr>
<td class=”summary-date”>{$DateUtil.format({$item.getPubDate()},”Y.m.d D H:i”)}</td>
<td><a href=”{$item.getLink()}” title=”{$item.getTitle()}”>{$filter.cutString({$item.getTitle()})}</a></td>
</tr>
</rt:loop>
</table>

太字の部分がfilterとDateUtilを適用した箇所です。
これで完成です。
実行すると以下のように表示されます!
実行画面

ブログに挿入

ブログツールはWordPressを使っています。
WordPressはテンプレートに直接PHPコードを書くことができますので、先ほど作成したものをinclude等で表示させたい箇所に記載すれば、それで表示されます。
現在はトップページに表示させています。

rhacoは使用したい機能を個々にインポートして、それを使ってアプリケーションを組み立てていくというイメージなのかな??
っていうかフレームワークというものはそういうものなのかな???

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://www.planet-ape.net/archives/544/trackback
Listed below are links to weblogs that reference
rhacoを使ってblogにtumblrの更新情報(RSS)を載せる from planet-ape|blog

Home > PHP | rhaco > rhacoを使ってblogにtumblrの更新情報(RSS)を載せる

Search
Feeds
Meta

Return to page top