index » ラボ&備忘録 » MODx » リソース » テンプレート変数(template-var) このエントリーを含むはてなブックマーク

テンプレート変数(template-var)

2007.03.28

ブロック単位でアクセスする為のもので、簡単に言うとドキュメントに対する「内容」や「タイトル」と同じような入力項目を増やせる機能と考えてください。
たとえば、各ドキュメントに対して「ひとこと」付け加えて表示したいとして、[*hitokoto*]と言うテンプレート変数を作成します。 表示場所はとりあえず全部のドキュメントのメニューの下あたりに置こうかなという事で、テンプレートのメニュー部分に[*hitokoto*]と記述しておきます。
各ドキュメントを編集する際に、下のほうに入力フォーム(デフォルトだとインラインテキスト)が表示されるようになり、ドキュメントごとに自由に内容を変える事が出来るのです。

内容を書き換えなければ変数を作成した時のデフォルト値が入る事になりますから、全てのドキュメントを編集する必要もありません。
また、入力タイプは色々なタイプが用意されています。例えば、入力ボックス、テキストエリア、セレクション、ファイル用フォームなどなど…。ファイル用フォームは直接UPするわけではなくて、イメージブラウザからファイル名を取得する感じです。
例えば、サムネイルと本体画像のテンプレート変数を作成し、1画像1ドキュメントで解説やコメントなどつけたページを作成してDittoとかでサムネイル表示含めてリスティング…とやるとギャラリーのページとか作成できそう。試してないけど。まぁ、ギャラリー用のスニペットがあるけどね( ・ω・)

また、入力値に@バインドでPHPコードやSQLの実行が可能なため、エディターが複数いる場合ドキュメントグループの設定やアクセス権には十分注意するべきです。

ドキュメントの基本テンプレート変数の一部

http://www.modxcms.com/template-variables.html
http://www.modxcms.com/document-tvs.html

テンプレート変数については、上に書いたようにドキュメント毎に内容を変えられると言う意味が大きいと思うので、単に同じ内容を複数のページで使いまわしたいと言うような場合、チャンクを使う方が適切でしょう。

@バインド

@FILE
既定値、もしくは値に入力すると、ファイルの内容が返る。
@DOCUMENT
既定値、もしくは値に入力すると、ドキュメントの内容が返る。入力時のオプション値にも使えるがあまり意味は無い。
@CHUNK
既定値、もしくは値に入力すると、チャンクの内容が返る。入力時のオプション値に入れておくとチャンクそのものが入力値オプションとして返る。

入力時オプション

@CHUNK Colors

Colorsチャンクの内容

Red==#FF0000||Green==#00FF00||Blue==#0000FF

これは入力時オプションを以下にする場合と同等です。

Red==#FF0000||Green==#00FF00||Blue==#0000FF
@INHERIT
調べ中
@SELECT
DBから値を拾ってくる事が出来ます。
@SELECT pagetitle,id FROM modx_site_content LIMIT 10
戻り値は||で区切られ、入力時オプションでも使用する事が出来ます。
テンプレート変数のアクセス権(ドキュメントグループの割り当て)には注意しておきましょう。
@EVAL
PHPコードを実行する事が出来ます。
テンプレート変数のアクセス権(ドキュメントグループの割り当て)には注意しておきましょう。