Welcome !! Now 2008.05.26 00:54 (JST)

日本語 English

pieX (0.6.1)

[ スニペット ]

pieXは、RSSfeed取り込み用スニペットです。テンプレートを自分で用意出来、多彩な表現が可能です。allow_url_fopen = off で動作します(もちろん、onでも動作します)。

このバージョンより、「NucleusのNP_Simplepie」とほぼ同等の機能となり、以下のような機能が追加されました。

参照ページ:pieX Ver0.6 - ぷちパワ/w.ZeRo

ダウンロード:pieX Ver0.6.1

テスト環境

  • サーバ:さくらインターネット  
    • PHP 4.4.4
    • MYSQL 4.0.27
  • MODX:0.9.5
  • pieX (0.6.1)

基本的な書式

[!pieX? &url=`feedURL`!]

取り込みたいURL内に「?」「=」「&」がある場合

それぞれ以下のように書き換えます

  • 「?」=>|xq|
  • 「=」=>|xe|
  • 「&」=>|xa|
書式例)
[!pieX? &url=`http://ドメインとか/index.php?act=rss&id=1`!]
[!pieX? &url=`http://ドメインとか/index.php|xq|act|xe|rss|xa|id|xe|1`!]

インストール

「simplepie.inc」の入手

このスニペットは、piex本体の他に、「Simplepie」の 「simplepie.inc」が必要となります。「simplepie:Download」より入手できます。

アップロード

  1. まず、「piex-v061.zip」を解凍します。以下のファイルが現れます。
    • piex-v061
       └ [simplepie]
          └ class.html2text.inc
          └ simplepie_hatena.inc
       └ piex.snippet.php(スニペットコード)
      
  2. サーバー上の「assets/snippets」以下に[simplepie]フォルダごとアップロードします。
  3. 「「simplepie_1.0.1.zip」を解凍します。複数のファイルが現れますが、必要なのは、「simplepie.inc」のみになります。
  4. サーバー上の「assets/snippets/simplepie」以下に「simplepie.inc」をアップロードします。

サーバー上のディレクトリ構造

[assets]
 └ [snippets]
    └ [simplepie]
       └ class.html2text.inc
       └ simplepie.inc
       └ simplepie_hatena.inc

スニペットの作成

MODxの管理画面で、スニペットを新規作成します。

  1. リソース>リソース管理>スニペット>スニペットの作成
  2. 「スニペット名」に「pieX」と入力します
  3. 「piex.snippet.php」の内容を「スニペット コード (php) 」に貼り付けます
  4. プロパティタブの「規定のプロパティ」に以下のコードを貼り付けます
    • &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;

プロパティ

スニペットのプロパティは以下の意味を持ちます(カッコ内は、スニペットコールで呼び出す場合のパラメータ名です)。

cache enable(cache_enable)

キャッシュを利用するかどうかを指定します([true | false])。デフォルト「する(true)」。

cache life time(cache_time)

キャッシュの有効時間を指定します(単位:秒)。デフォルト「60」。

extend item class name(extclass)

Simplepieの拡張アイテムクラスを使用したい場合にクラス名を指定します。デフォルトなし。

noitem template chunk name(noitem)

取得するデータがない場合、またはデータを取得できなかった場合のテンプレート(チャンク名)を指定します。

デフォルトは以下です(スニペットから呼び出されます)。

<p>no item</p>

チャンクにはfeedUrl(取得したいURL)も利用可能です

チャンク例
<p>記事がないか、トラブルのため取得できません。</p>
[+feed_url+]

date format(dateformat)

日付の書式を指定します(書式はphpのstrftime関数に準じます)。デフォルト「%Y/%m/%d %H:%M」。

max items(max)

表示する記事の最大値を指定します。デフォルト「10」。

pattern rows(rows)

アイテムテンプレートで利用できる「no(記事番号)」の最大値を指定します。これにより「no」の値が、表示件数分、1~最大値の間で繰り返されます。

例えば、ここで、「2」を指定すると「no」の値は、「1」、「2」を交互に繰り返します。なお、「0」を指定した場合は記事件数までのシーケンシャル番号となります。デフォルト「0」。

embed property Chunk Name(embed)

embed パラメータ を記述したチャンク名を指定します。デフォルトなし。

パラメータ(必須)

スニペットコールで指定できるパラメータで、必須のものです。

&url

取り込みたい「feed url」を指定します。

パラメータ(オプション)

スニペットコールで指定できるパラメータで、オプションです。

header

ヘッダ用テンプレートのためのチャンクを指定します。デフォルトは以下です。

<h2><a href="[+permalink+]" title="[+title+]">[+image_url+]</a></h2><ul>

footer

フッタ用テンプレートのためのチャンクを指定します。デフォルトは以下です。

</ul>

item

中身用テンプレートのためのチャンクを指定します。デフォルトは以下です。

<li><a href="[+permalink+]" title="[+description+]">[+title+]</a>([+date+])[+category+]</li>

その他

スニペットの「プロパティ」を指定できます。スニペットコールで利用する場合は以下になります。

  • cache enable
  • cache_time
  • extclass
  • noitem
  • dateformat
  • max
  • rows
  • embed

各パラメータの意味は、「プロパティ」を参照してください

テンプレートで使用出来るプレイスホルダ

header / footer

  • [+title+] ... フィードのタイトル
  • [+permalink+] ... フィードのURL
  • [+description(タイプ,長さ)+] ... フィード概要。タイプおよび長さは省略可(「[+description+] のタイプと長さ」参照)。
  • image_title ... ロゴイメージのタイトル
  • [+image_url(width,height)+] ... ロゴイメージのURL。 width および、 height は省略可
  • [+subscribe_xxxx+] ... Simplepie のsubscribe 機能を利用可(「[+subscribe_xxx+] 機能」参照)

[+description+] のタイプと長さ

タイプは以下が指定可能です。

  • text ... HTMLタグを除去したプレーンテキストを出力
  • html ... <a>および<img>以外を除去して出力

長さは、切り出す文字列の長さを指定します(0または指定なしですべてを表示)。

指定例:
[+description(text,300)+]

[+subscribe_xxx+] 機能

各サービスの購読用リンクURI を挿入します

指定例:
<a href="[+subscribe_google+]" title="google で購読">google で購読</a>
 ※「google で購読」のリンク URI を挿入します。

その他 subscribe 機能の詳細はsimplepieのAPIドキュメントを参照してください。

item

  • [+title+] ... 記事のタイトル
  • [+permalink+] ... 記事のURL
  • [+description+] ... 記事の概要
  • [+date+] ... 日付
  • [+category+] ... カテゴリ
  • [+author+] ... 投稿者
  • [+enclosure+] ...Podcast/videocastを表示(「embedパラメータ」参照)。
  • [+add_to_xxxx+] ... Simplepie の add_to 機能を利用可(「[+add_to_xxx+] 機能」参照)
  • [+no+] ... 記事のシーケンシャル番号。pattern rows または rows で指定した値

尚、Simplepie の拡張クラスが提供する get メソッドも利用可能です。詳細は「Simplepie:Extending the SimplePie class(拡張クラス)」を参照してください。

[+add_to_xxx+] 機能

各種ブックマーク登録用リンクURIを挿入します。

指定例:
<a href="[+add_to_delciou+]" title="del.ci.ou へ登録">del.ci.ou へ登録</a>
 ※「del.ci.ou へ登録」のリンク URI を挿入します。
はてなブックマーク

[+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ドキュメントを参照してください。

Embedパラメ-タ(Podcast/Videocast用)

[+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`!]
item = px_lulu_item
<li><a href="[+permalink+]" title="[+date+]">[+title+]</a></li>
header = px_lulu_head
<ul>

拡張クラスを利用する

自分で拡張クラスファイルを作成する

  1. 拡張クラスファイルを作成し、以下の形式のファイル名で保存します。
    • simplepie_クラス名.inc
  2. 「assets/snippets/simplepie」以下にアップロードします
  3. スニペットのパラメータ「extend item class」、またはスニペットコールのパラメータ「extclass」で「クラス名」を指定します。

インスタンス

拡張クラスファイル名
simplepie_sample.inc
スニペットコール
[!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/");

△ページトップ