[Nucelus] NP_Simplepie

旧サイトから移しました。


基本的には、NP_NewsfeedEXの後継なので似たような扱いになりますが、すでに記事でも触れている通り、複数のテンプレートへの対応としてNucleus本体のテンプレート機能を利用する方式になりました。
また、Simplepieのバージョンアップに合わせて、PodcastやVideocastへの対応などが盛り込まれています。
特徴として、

  • テンプレートをNucleusの基本機能を利用することにより、マルチテンプレートに対応
  • テンプレート変数の拡張し、Subscribe機能やAdd_to機能も搭載
  • はてなの拡張RSSをSimplepieの拡張クラスにし、はてなブックマークへの登録URLの生成を追加

となっています。
特にマルチテンプレートへの対応は、サイドバーや記事ごとの表示方法に対して有効に活用できるようになったと思います。

インストール及び使用開始までの手順

  1. ダウンロードしたアーカイブ一式をnucleus/pluginsディレクトリにアップロードします。
  2. simplepieは、別途こちらよりダウンロードし、nucleus/plugins/simplepieフォルダにsimlepie.incをアップロードします。
    現在、対応しているSimplepieのバージョンは、1.0.1です。
  3. Nucleusの管理画面にて、プラグインSimplepieを登録します。
  4. プラグインの編集にて、プラグインの動作設定を行います。
  5. テンプレートを作成します。(詳細はテンプレートの作成へ)
  6. スキンまたは記事にて、NP_Simplepieを呼び出します。(詳細は呼び出し形式へ)

プラグインの設定

[Enable/disable caching in SimplePie]
キャッシュを利用するかどうかの指定です
[Set the folder where the cache files should be written]
キャッシュの格納場所を指定します。
プラグイン初期時は、自動的にmedia/cacheの物理パスが入っています。
[Set the minimum time for which a feed will be cached]
キャッシュの有効時間を指定します。(単位: 秒)
[default item class name]
Simplepieの拡張アイテムクラスを既定値としたい場合にクラス名を指定します。
[default template name]
テンプレート名を指定しなかった場合の標準テンプレート名を指定します。
[default amount]
記事表示数を指定しなかった場合の標準値を指定します。

テンプレートの作成

本プラグインにてフィードを表示すには、本プラグインが使用するNucleus本体のテンプレートを作成する必要があります。
下記の画面を例に、作成する項目について説明します。
なお、Nucleus管理画面のテンプレート編集で新規にテンプレートを作成してください。
例として、下記画面のようにSimplepie/defaultなどとしておくとよいでしょう。

ヘッダ・フッタ・本体

アイテムのヘッダー、アイテムのフッタ、アイテムの本体に利用するテンプレート部品を登録します。
テンプレート内に利用できる変数は、Simplepieが提供するgetメソッド、Subscribeメソッド、Add_toメソッドが利用できます。(但し、文字列が戻り値となるもの)
Subscribeメソッドは、ヘッダー・フッタのみに利用可能で、Add_toメソッドはアイテムの本体のみに利用可能です。
また、アイテム本体には本プラグイン特有の変数(<%no%>)があります
なお、テンプレート変数の書式は、Nucleusと同様<%変数名%>または<%変数名(引数・・)%>の形式になります。

よく使われるテンプレート変数

よく使われるテンプレート変数を以下に説明します。
ヘッダー・フッタ用

title
フィードのタイトル
permalink
フィードのURL
description
フィード概要
<%description(タイプ,長さ)%>の形式が利用可能です。
タイプには、textまたはhtmlが指定でき、textはHTMLタグを除いたプレーンテキスト形式になります。
長さは、切り出す文字列の長さを指定できます。(0または指定なしではすべてが表示されます)
image_title
ロゴイメージのタイトル
image_url
ロゴイメージのURL
<%image_url(width,height%>の形式が利用可能です。
subscribe_xxxx
Subscribeの機能です、詳細はsimplepieのAPIドキュメントを参照してください。

アイテム本体用

title
記事のタイトル
permalink
記事のURL
author
著者名
category
カテゴリ名
description
記事概要(書式は、ヘッダー・フッタと同様)
date
日付
enclosure
Podcast/videocastの表示(表示形式は、Simplepie依存となり、その為のパラメタはテンプレートで指定します。
add_to_xxxx
記事のブックマーク用の変数(詳細はsimplepie.orgのAPIドキュメントを参照してください)
no
記事のシーケンシャル番号で、呼び出しパラメタの最大値と連動し、1~最大値までの番号に変換されます。
この変数を利用することにより、例えば1行おきに記事の背景色を変えるなどが行えます。

拡張クラスが提供するgetメソッド及びadd_toメソッドも利用可能です。(詳細は拡張クラスを参照してください)

日付のフォーマット

日付の書式は、NucleusCMSの書式と同様です。

Embedパラメタ(Podcast/Videocast用)

enclosureを展開する際のEmbedのパラメタを指定します。
詳細は、simplepie.orgのAPIドキュメント内のnative_embedを参照してください。

利用方法

スキンまたは記事内にて、以下の形式で呼び出します。
<%simplepie(フィードURL,拡張クラス名,テンプレート名,表示記事件数,記事番号最大値,キャッシュ有効時間)%>

フィードURL
RSS/XMLなどのフィードURLを指定します。
拡張クラス名
記事を表示する際に利用する拡張クラス名を指定します。(現状では、Hatenaなど)
指定しない場合は、プラグイン設定で指定した既定のクラス名を使用します。
テンプレート名
利用するテンプレート名を指定します。(指定しない場合は、プラグイン設定で指定した既定のテンプレート名を使用します)
表示記事件数
表示する記事件数を指定します。但し、指定記事数よりも取得する記事数が少ない場合は取得した記事数までとなります。
記事番号最大値
アイテム本体で利用する記事番号の最大値を指定します、これによりテンプレート変数noが1~最大値を件数分繰り返します。
2を指定すると1,2と交互にnoが変わります。なお、0を指定した場合は記事件数までのシーケンシャル番号となります。
キャッシュ有効時間
キャッシュの有効時間を指定します。(単位:分) 指定しない場合は、プラグイン設定で指定した時間が使用されます。
Simplepie_Item_Hatenaについて

添付ファイルのsimplepie_hatena.incはITEMの拡張クラスであるSimplepie_Item_Hatenaのソースファイルです。
本拡張クラスは、はてなRSSが提供するAGGREGATIONタグを認識する為のdate/categoryメソッドの拡張とSubscribe_hatenaを提供します。

ライセンスについて

simplepie_hatena.incは、simplepieに準拠します。(BSD)
NP_Simplepieプラグイン本体は、NucleusCMS及びhtml2textクラスに準拠します。(GPL)

プレーンテキスト変換に利用しているクラスライブラリ

本プラグインのDescriptionにtextパラメタで利用するHTML⇒TEXT変換に利用しているのが、Jon Abernathy氏が公開している「Converts HTML to formatted plain text」です。

ダウンロード

ダウンロードは、こちらから
プッシュ通知を