読者です 読者をやめる 読者になる 読者になる

むずかしいことはわかりません

いろいろ書いてるみたいな

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;
	}