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は使用したい機能を個々にインポートして、それを使ってアプリケーションを組み立てていくというイメージなのかな??
っていうかフレームワークというものはそういうものなのかな???
- Newer: 百合の咲く場所で
- Older: tumblrのデザインも変更してみた。
Comments:0
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