MODxでCMSの恩恵を賜りつつ、validを保ち、かつWEB標準化を目指そう
[ スニペット ]
pieXは、RSSfeed取り込み用スニペットです。テンプレートを自分で用意出来、多彩な表現が可能です。allow_url_fopen = off で動作します(もちろん、onでも動作します)。
このバージョンより、「NucleusのNP_Simplepie」とほぼ同等の機能となり、以下のような機能が追加されました。
参照ページ:pieX Ver0.6 - ぷちパワ/w.ZeRo
ダウンロード:pieX Ver0.6.1
[!pieX? &url=`feedURL`!]
それぞれ以下のように書き換えます
[!pieX? &url=`http://ドメインとか/index.php?act=rss&id=1`!]
[!pieX? &url=`http://ドメインとか/index.php|xq|act|xe|rss|xa|id|xe|1`!]
このスニペットは、piex本体の他に、「Simplepie」の 「simplepie.inc」が必要となります。「simplepie:Download」より入手できます。
piex-v061 └ [simplepie] └ class.html2text.inc └ simplepie_hatena.inc └ piex.snippet.php(スニペットコード)
[assets] └ [snippets] └ [simplepie] └ class.html2text.inc └ simplepie.inc └ simplepie_hatena.inc
MODxの管理画面で、スニペットを新規作成します。
&cache_enable=cache enable;text;true
&cache_time=cache life time;text;60 &extclass=extend item
class;text; &noitem=no item template chunk name;text;
&dateformat=date format;text;%Y/%m/%d %H:%M &max=max items;text;30
&rows=pattern rows;text;0 &embed=embed property Chunk Name;text;
スニペットのプロパティは以下の意味を持ちます(カッコ内は、スニペットコールで呼び出す場合のパラメータ名です)。
キャッシュを利用するかどうかを指定します([true | false])。デフォルト「する(true)」。
キャッシュの有効時間を指定します(単位:秒)。デフォルト「60」。
Simplepieの拡張アイテムクラスを使用したい場合にクラス名を指定します。デフォルトなし。
取得するデータがない場合、またはデータを取得できなかった場合のテンプレート(チャンク名)を指定します。
デフォルトは以下です(スニペットから呼び出されます)。
<p>no item</p>
チャンクにはfeedUrl(取得したいURL)も利用可能です
<p>記事がないか、トラブルのため取得できません。</p>
[+feed_url+]
日付の書式を指定します(書式はphpのstrftime関数に準じます)。デフォルト「%Y/%m/%d %H:%M」。
表示する記事の最大値を指定します。デフォルト「10」。
アイテムテンプレートで利用できる「no(記事番号)」の最大値を指定します。これにより「no」の値が、表示件数分、1~最大値の間で繰り返されます。
例えば、ここで、「2」を指定すると「no」の値は、「1」、「2」を交互に繰り返します。なお、「0」を指定した場合は記事件数までのシーケンシャル番号となります。デフォルト「0」。
embed パラメータ を記述したチャンク名を指定します。デフォルトなし。
スニペットコールで指定できるパラメータで、必須のものです。
取り込みたい「feed url」を指定します。
スニペットコールで指定できるパラメータで、オプションです。
ヘッダ用テンプレートのためのチャンクを指定します。デフォルトは以下です。
<h2><a href="[+permalink+]"
title="[+title+]">[+image_url+]</a></h2><ul>
フッタ用テンプレートのためのチャンクを指定します。デフォルトは以下です。
</ul>
中身用テンプレートのためのチャンクを指定します。デフォルトは以下です。
<li><a href="[+permalink+]"
title="[+description+]">[+title+]</a>([+date+])[+category+]</li>
スニペットの「プロパティ」を指定できます。スニペットコールで利用する場合は以下になります。
各パラメータの意味は、「プロパティ」を参照してください
タイプは以下が指定可能です。
長さは、切り出す文字列の長さを指定します(0または指定なしですべてを表示)。
[+description(text,300)+]
各サービスの購読用リンクURI を挿入します
<a href="[+subscribe_google+]"
title="google で購読">google で購読</a>
その他 subscribe 機能の詳細はsimplepieのAPIドキュメントを参照してください。
尚、Simplepie の拡張クラスが提供する get メソッドも利用可能です。詳細は「Simplepie:Extending the SimplePie class(拡張クラス)」を参照してください。
各種ブックマーク登録用リンクURIを挿入します。
<a href="[+add_to_delciou+]"
title="del.ci.ou へ登録">del.ci.ou へ登録</a>
[+add_to_hatena_bookmark+]
pieXの独自機能として、はてなブックマーク登録用URIを挿入できます。利用する場合は、「extclass」で「hatena」を指定する必要があります(「はてな用拡張クラスファイルについて」参照)。
<a href="[+add_to_hatena_bookmark+]"><img
src="assets/images/icon/b_entry.gif" width="16" height="12"
alt="はてなブックマークへ登録" title="はてなブックマークへ登録" />
その他 add_to 機能の詳細はsimplepieのAPIドキュメントを参照してください。
[+enclosure+] の表示形式を指定します。
表示形式は、Simplepie依存となり、その為のパラメータをチャンクで作成します。チャンク名は、embed property Chunk Name または embed で指定した値になります。
チャンクコードに、embed のオプションを記述します。
alt=Download this enclosure!
audio=assets/image/place_audio.png
video=assets/image/place_video.png
mediaplayer=assets/flash/mediaplayer.swf
widescreen=true
詳しくは、simplepie:native_embed を参照してください。
このサイトのフロントページ左ブロックで、「るるろぐてくにかる。」を読み込んでいる部分がそうです。
[!pieX?
&url=`http://www.yoursite.com/rssfeed.xml` &max=`5`
&cache_time=`360` &item=`px_lulu_item` &dateformat=`%Y.%m.%d -
%R`
&header=`px_lulu_head`!]
<li><a href="[+permalink+]" title="[+date+]">[+title+]</a></li>
<ul>
[!pieX? &url=`feed url` &extclass=`sample`!]
「pieX-v061」に同梱されている「simplepie_hatena.inc」は、はてなRSSが提供するAGGREGATIONタグを認識する為の機能と、はてなブックマーク用登録URL生成機能を提供します(「はてなブックマーク」参照)。
[!pieX? &url=`feed url` &extclass=`hatena`!]
デフォルトでは、キャッシュの有効場所は、「assets/cache」に固定です。以下の部分を修正して変更できます。
define("SIMPLEPIE_CACHE_LOCATION",$modx->config['base_path'] . "assets/cache/");