cakephpで使うためにsimplepieと格闘。
SimplepieComponentがどうしても使いたかったんです。
GoogleFeedAPIも便利そうでいいなと思いましたが、今回はSimplePie動かしたいということで。
feedで受け取ったデータを生のまま全部くれるようなのですが、それだとちょっと面倒だしなー、どうにかしたいなーというところで、SimplepieComponentにちょっと追加してみました。
ファイルの先頭に以下を追加。取ってくる最大値なので、適当に使いやすい量に変更してください。
define ( "_SP_ITEMLIMIT", 5 );
変数宣言してる最後に以下を追加。
var $itemLimit; var $feedItem = array();
feed関数の後ろなどに適当に追加。convertの内部は、使う内容を自分で適当に書き換えた方がいいと思います。
function setItemLimit ( $num = _SP_ITEMLIMIT ) { // Set number of items to per-feed $this->sp_feed->set_item_limit ( $num ); } function convert ( $items ) { if ( $items ) { $this->feedItem = array(); $i = 0; $this->sp_feed->set_raw_data($items); $this->feedItem[$i]['item_title'] = $this->sp_feed->get_title(); $this->feedItem[$i]['item_link'] = $this->sp_feed->get_permalink(); $this->feedItem[$i]['item_date'] = Date('Y/m/d H:i:s'); $this->feedItem[$i]['item_description'] = $this->sp_feed->get_description(); foreach ( $this->sp_feed->get_items() as $item ) { ++$i; $this->feedItem[$i]['item_title'] = $item->get_title(); $this->feedItem[$i]['item_link'] = $item->get_permalink(); $this->feedItem[$i]['item_date'] = $item->get_date('Y/m/d'); $this->feedItem[$i]['item_description'] = rawurldecode($item->get_description()); } } else { return false; } return $this->feedItem; }