SimplePie For MODxは、MODxのRSS表示スニペットです。
MODxには、既にNewsParserXというスニペットがありますが、今回NucleusのNP_NewsfeedEXと同じ仕組みであるSimplePieをベースにしたものを作りました。
SimplePieを利用することによるメリットは、以下の通り。
- allow_url_openがOffでも利用可能
- CURLが利用できる場合は、CURLを用い、そうでない場合はsocketを用います。
- キャッシュ機能がある。(有効期間はスニペット内のソースで固定になっています)
- はてなRSSに対応(ag:sourceをCategoryとして認識します)
これは、SimplePieのソースに上記対応部分を追加しています。
- 記事表示(タイトル含む)は、チャンクのテンプレート形式になっていますのでRSSサイト毎に違う表記方法も可能です。
NewsParserXの場合は、スニペット内ソースで固定になっているので、ココが一番違うかも・・。
- BASIC認証付フィードにも対応しています。(SimplePieのおかげ)
- Description表示にHTML Parser For PHP4を利用したプレーンテキスト変換機能を実装。
サイトによっては、記事の抜粋でかつHTMLを含めたDescriptionを出力する場合にタグ周りやクォート周りで表示がおかしくなるのを防ぎます。
(MODx JapanサイトのRSSフィードがそういうタイプ笑)
ダウンロード
当サイトのダウンロードページよりpieXのZIPファイルをダウンロードする。
インストール
- 解凍してできたpieXディレクトリをまるごと、assets/snippetsにアップロードする
- pieX.snippets.phpをエディタ等で開いて、管理画面のスニペットでpieXを作成し、ファイルの中身をコピペする。
使い方
呼び出し形式
[[pieX?url=`RSSのURL`&cnt=表示件数&headTpl=`ヘッダテンプレート`&itemTpl=`記事テンプレート`&footTpl=`フッタテンプレート`&date=`Y/m/d H:i`&desc2text=(true/false)]]
- RSSのURL
- RSSフィードのURLを指定します。
記述形式は、http://から書いてください。
なお、URL内に?=&がある場合は、それぞれ |xq| |xe| |xa| に変換してください。
BASIC認証付きのRSSフィードURLの場合は、http://ユーザ名:パスワード@アドレス のように記載してください。
- headTpl/ItemTpl/footTpl
- 各表示部のテンプレートのチャンク名を指定します。(詳細は後述)
- date
- 記事の投稿日(date変数)のフォーマットを指定します。(記述形式はPHPのdate関数に同じ)
- desc2text
- feed_description及び記事のdescriptionをHTMLからプレーンなテキスト形式に変換するかどうかの指定です。(既定値は、true)
表示の形式
展開されるフィードの内容は、以下のブロックの順番に出力されます。
| HeadTpl部 |
| itemTpl部 ×cnt分 |
| footTpl部 |
headTpl/footTplで利用可能な変数名
テンプレート内に記述する変数の形式は、PlaceHolder変数と同じ[+変数名+]の形式になります。
| 変数名 |
内容 |
| feed_title |
Feedサイトの名称 |
| feed_description |
Feedサイトの概要 |
| feed_link |
FeedサイトのURL |
| image_url |
ロゴのURL |
なお、image_urlは自動的にIMGタグを含めて展開します。
これはimage_urlが実際に定義されてなかった場合の処置で、画像がない場合は、feed_titleを返します(文字のみ)。
itemTplで利用可能な変数名
| 変数名 |
内容 |
| title |
記事タイトル |
| permalink |
記事URL |
| description |
概要 |
| date |
日付 |
| category |
カテゴリ |
| author |
著者 |
謝辞
本スニペットの公開にあたり、某mixiのMODxコミュニティでテスターとなってくれたMEGU氏のご協力を頂きました。
バグ出しご協力ありがとうございました。 