REDLINE MAGAZINE | MODx スニペットを使ってみるREDLINE MAGAZINEトップページへ

すべてのエントリを見る

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`)

では実際に使ってみる

上で書いたサンプルコンテンツのソースを参考に実験サイトにソースを挿入してみます。

画面キャプチャ・MODxサンプルサイトのファイル階層

現状こんな感じでSample_indexの下階層にメニュー1~5までドキュメントが置いてある状態。今回Dittoで取得する親フォルダは51番のドキュメント(Sample_index)にしてそのドキュメント内に下階層の最近更新したドキュメントの一覧とかを作って見るという設定で。

サンプルソースを参考に必要なパラメータを吟味してみる。・・・使用するのはstartID、summarizeの2つだけにしてみる。何事もまずはイージーに。スニペットで吐き出すソースを自分で作ったテンプレートの形で出力できるのも魅力だと感じるけど、とりあえず今はいいや。ということでこんなソースを入れてみました。

[[Ditto? &startID=`51` &summarize=`3`]]

意味はスニペットDittoを使用する。51番のドキュメントを親フォルダにする。更新情報を3件分表示。保存してプレビュー。

画面キャプチャ・MODxサンプルサイト

でけました。何もテンプレートをかまさないデフォルトの出力はこういう感じになるらしい。ちなみに最初のサンプルコンテンツで用意されてたテンプレートでいくと・・・

画面キャプチャ・MODxサンプルサイト

こんな感じになってました。ブログコンテンツのサンプル部分に使われていたので、ちゃんとそれらしい感じになってますね。なんかいろいろできるんだなぁ。

で、この私のMODxを試してみるシリーズ、いつまで続くんだろうな・・・。

<< MODx チャンクを使ってみる |

トラックバック

このエントリーのトラックバックURL:
http://redline.hippy.jp/cgi/mt/mt-tb.cgi/165

コメント (1)

MODxのスニペットについて調べていたところ、たどり着きました。

無事スニペットを表示することができました。良い情報ありがとうございました。




※コメント欄に「<」「>」等を含むソースを記載する場合は実体参照に変換してください。

このページの一番上へ

その他の情報など

最近のコメント

PHP オブジェクト指向の勉強
  • Red - 2010.01.08
  • hogepage - 2010.01.21
  • Red - 2010.01.22
  • - 2011.11.27
  • houseiii - 2011.11.27
Fireworks トリミング画像を一括書出 CS4編
  • Iper - 2009.06.27
  • Red - 2009.06.27
  • mala - 2011.11.17
  • Red - 2011.11.18
jQueryでボックスを上下左右中央に簡単配置
overflow を使用したボックス背景のこと
  • - 2007.12.13
  • Red - 2007.12.13
  • - 2007.12.13
  • Red - 2007.12.13
  • hj - 2011.09.23
IE6 → 透過PNG+overflow=混ぜるな危険(追記有)

メッセージを送る

こちらのメッセージ送信フォームは閉鎖させて頂きました。
御用の方は新しい方のブログ にコメント頂くか、 連絡用のフォーム もありますので、そちらからご連絡ください。