MODx スニペットを使ってみる
スニペットって何だろう?
MODxのスニペットとはphpで出来たスクリプトで、スニペットタグでスクリプトを呼び出すだけで簡単にその機能が使えるというものらしい。有志の方が作ってくださったスニペットが多数公開されている。こんな事いいな、できたらいいな的な機能をパーツとして提供してくれるものといったところなのかな。
MODxのインストール時に一緒にインストールしたサンプルサイトにもいろいろとスニペットが使用されていました。AjaxSearch(Ajaxを使った検索)とかeForm(フォーム)とかWayfinder(メニュー関連を効率よく管理する)などなど。管理画面の「リソース > リソース管理 > スニペット」の一覧にインストールしてあるスニペットがダダダーーって並んでいるので時間がある時にいろいろ調べてみたい。なんせ数が多いので探せば欲しい機能が見つかる気がする。なければ自作も可能らしい。
今回はDittoを使ってみる
スニペット「Ditto」はサイト内のドキュメントから任意の項目の内容を抜き出して自由なレイアウトで出力できる機能を持ったスニペットらしい。ブログやってる人なら分かりやすいと思うけど、更新した際に新着情報とかアーカイブページとか自動的に生成されたり更新されたり、そういう機能を持つスニペット。rss feed、xmlなども出力可能でマルチ言語対応とのこと。以下参考サイト。
>>Home - Ditto Support Site
>>Let's enjoy MODx|Ditto - 2.1 beta
今回私はバージョン2.0.2を使用。サンプルサイトに最初から同梱されていて予め使えるようになっていた状態だったんですが、まだ手元にファイルがない場合はこの辺りからダウンロードできる。
>>MODx Content Management System | Ditto
スニペットタグの書き方
基本的なスニペットタグの書式には2パターンあるようです。
- [[スニペット名]]
- キャッシュを有効にしてスニペットを利用したい場合の呼び出し。
- [!スニペット名!]
- キャッシュ不可にしてスニペットを利用したい場合の呼び出し。
キャッシュを有効にしてないとうまく動作しないスニペットや、その逆もあるみたい(?)なんせ使用するスニペットごとにその辺りは要確認。スニペットタグにパラメータを与える時の決まりごと。
- スニペット名の後に「?」をつける
- パラメータは半角スペースで区切る
- パラメータの頭には「&」をつける
- 値は「`」で括る
Dittoのパラメータ
Dittoの機能を使うためにスニペットタグを呼び出して、そこにパラメータを加えることでどんな動きをさせるのかを指定します。下記のサイトでDittoのパラメータについてまとめられていました。
>>MODxフォーラム スニペット: Ditto 2.0.2
>>MODxフォーラム スニペット:Ditto(ドキュメントの内容を様々な形で表示)
>>Let's enjoy MODx|Ditto - 2.1 beta
サンプルコンテンツのDitto部分はこうなってた
インストール時に同梱されていたサンプルコンテンツの中にもDittoが使われている箇所があったので、その部分のパラメータを解読してみる。
[[Ditto? &startID=`2` &summarize=`2` &removeChunk=`Comments` &tpl=`ditto_blog` &paginate=`1` &extenders=`summary,dateFilter` &paginateAlwaysShowLinks=`1` &tagData=`documentTags`]]
- 取得する親フォルダのIDは2番のドキュメント(
&startID=`2`
) - 取得するサマリの数は2(
&summarize=`2`
) - ドキュメント中のチャンクを削除するか > Commentsを削除(
&removeChunk=`Comments`
) - 表示に使用するテンプレートは「ditto_blog」(
&tpl=`ditto_blog`
) - ページ分割するかどうか > する(
&paginate=`1`
) - Dittoの機能拡張はどうするか > summary,dateFilterを使う(
&extenders=`summary,dateFilter`
) - 常に「次へ([+next+])」「前へ([+previous+])」のリンクを表示するかどうか > する(
&paginateAlwaysShowLinks=`1`
) - Tagsを表示する際のソース > documentTags(
&tagData=`documentTags`
)
では実際に使ってみる
上で書いたサンプルコンテンツのソースを参考に実験サイトにソースを挿入してみます。
現状こんな感じでSample_indexの下階層にメニュー1~5までドキュメントが置いてある状態。今回Dittoで取得する親フォルダは51番のドキュメント(Sample_index)にしてそのドキュメント内に下階層の最近更新したドキュメントの一覧とかを作って見るという設定で。
サンプルソースを参考に必要なパラメータを吟味してみる。・・・使用するのはstartID、summarizeの2つだけにしてみる。何事もまずはイージーに。スニペットで吐き出すソースを自分で作ったテンプレートの形で出力できるのも魅力だと感じるけど、とりあえず今はいいや。ということでこんなソースを入れてみました。
[[Ditto? &startID=`51` &summarize=`3`]]
意味はスニペットDittoを使用する。51番のドキュメントを親フォルダにする。更新情報を3件分表示。保存してプレビュー。
でけました。何もテンプレートをかまさないデフォルトの出力はこういう感じになるらしい。ちなみに最初のサンプルコンテンツで用意されてたテンプレートでいくと・・・
こんな感じになってました。ブログコンテンツのサンプル部分に使われていたので、ちゃんとそれらしい感じになってますね。なんかいろいろできるんだなぁ。
で、この私のMODxを試してみるシリーズ、いつまで続くんだろうな・・・。
トラックバック
このエントリーのトラックバックURL:
http://redline.hippy.jp/cgi/mt/mt-tb.cgi/165
コメント (1)
MODxのスニペットについて調べていたところ、たどり着きました。
無事スニペットを表示することができました。良い情報ありがとうございました。
投稿者: webd | 2010年06月07日 16:01