テンプレート変数には、あらかじめ定められた変数(ドキュメント変数)と、ユーザが独自に作成できるカスタムテンプレート変数の2つのタイプがあります。これらはドキュメントやテンプレートの中で「変数タグ([*変数名*])」を記述することによってそれらの値を呼び出したり、またはその値を直接プログラムの内部処理に利用したりできます。
ドキュメント変数
ドキュメント変数とは、ドキュメントが持つ様々な属性を指し、非常にたくさんの項目が存在します。それらのうちの多くはプログラムの中で利用されるものが多いのですが、以下にあげる項目のように直接ドキュメントやテンプレートの中で利用できるものも存在します。
- pagetitle…ドキュメントのページタイトル
- longtitle…ドキュメントの長いタイトル
- description…ドキュメントの説明
- introtext…ドキュメントの要約
- content…ドキュメントの内容
- alias…ドキュメントのエイリアス
- id…ドキュメントのID
- createdon…ドキュメントの作成日
- pub_date…ドキュメントの公開日
- editedon…ドキュメントの最終更新日
※その他は本家ドキュメント:ドキュメント変数のページを参照※
※尚、上記のうち「createdon」「pub_date」「editedon」で出力されるデータは、日付連番?なので、ちゃんとした日付の形式として出力する場合には、DateTemeJPなどを利用します※
カスタムテンプレート変数
管理画面でユーザが独自に作成できるテンプレート変数のことをカスタムテンプレート変数と呼びます。
※MODxでは、カスタムテンプレート変数のことを単に「テンプレート変数」と呼ぶこともあります※
MODxの作成画面には、「タイトル」や「説明」「エイリアス」といった項目が並んでいます。カスタムテンプレート変数は、これらの項目の他に、独自に入力フィールドを増やすものです。
作成したカスタムテンプレート変数は、テンプレートごとにアサインして利用します。ドキュメントで、カスタムテンプレート変数がアサインされたテンプレートを選択すると、カスタムテンプレート変数を利用することができます。
テキスト入力用の入力項目を作る
ここでは、もっとも簡単なテンプレート変数を作ってみましょう。
- エレメント>エレメント管理>テンプレート変数 と進みます。
- 「テンプレート変数の作成」をクリックします。以下の様な画面が現れます。項目を入力しましょう。
-

- 変数名 ... blogtags
- 見出し ... タグ
- 説明 ... タグ用入力フィールド
- 入力タイプ ... text
- テンプレートへのアクセス
-

- このテンプレート変数を利用したいテンプレートにチェックをつけます。
- 保存します
利用する
では、今作ったテンプレート変数を利用してみましょう。
- 新しくリソースを作り、上記「4.」で割り当てたテンプレート変数を適用します。
- 内容に、テンプレート変数名を書きます。
-
画面をスクロールするとテンプレート変数セクションに入力項目が増えているのがわかります。入力してリソースを保存しましょう。
- プレビューしてみます。
リストボックスを使った入力項目を作る
あらかじめ値を設定しておいて、入力時に選択できるようにしてみましょう。
- エレメント>エレメント管理>テンプレート変数 と進みます。
- 入力タイプに「Listbox(Muluti-Select)」を選択します。
- 「入力時のオプション値」を入力します。
-

-
「demo||テンプレート変数||test」
- 単語と単語は、「||(バーティカルバー2つ)」で区切る。スペースは入れない
- 「テンプレートへのアクセス」で、希望するテンプレートを選択します。
- ドキュメントを作成して、「4.」で、選択したテンプレートを適用してみましょう。
-

- このようになります。CTRL+クリックで複数の単語を選択できます。
- ドキュメントにテンプレート変数名を書き、保存して、プレビューしてみましょう。
-

- あれれ。表示はされましたが、単語同士がくっついてしまいましたね。
ウィジェット(出力オプション)で出力をコントロールする
ウィジェットを使って、単語間をカンマで区切って表示してみましょう。
- 先に作ったテンプレート変数を開きます(編集状態にする)
- ウィジェットの「Delimited List」を選択します。
- 「Delimiter」に「,(カンマ)」が入力されていれば、そのまま保存します。
- プレビューして確認してみましょう。
-

- 「Delimiter」は、カンマ以外にも指定可能です。
-

- 「/」にしてみた例
続く。。