[*テンプレート変数*]

テンプレート変数の使い方・実例

<html>
<head>
<title>[*pagetitle*]</title>
<meta name="description" content="[*description*]" />
<meta name="keywords" content="[*キーワード*]" />
</head>
<body>
<h1>[*longtitle*]</h1>
<div>[*content*]</div>
</body>
</html>

[*pagetitle*] などのリソース変数と同じ書式です。

スニペット・プラグイン内から呼び出す方法

二つのアプローチがあります。まずは覚えやすい方法から紹介します。

$string = $modx->documentObject['テンプレート変数名'][1];

ウィジェット(出力フィルター)を適用していない場合は、上記のように2番目(1)の要素を得てください。このように呼び出すと、キャッシュがある場合はキャッシュから読み出します。

$array = $modx->getTemplateVarOutput(array('テンプレート変数名'));
$string = $array['テンプレート変数名'];

ウィジェットを適用している場合は、上記のメソッドを用いてアクセスします。このメソッド単位ではキャッシュを用いませんが、MODXはスニペットコール単位でキャッシュしますので大差ありません。

ウィジェットの処理を通して値を得られる、後者の $modx->getTemplateVarOutput メソッドの利用をおすすめします。前者の方法はリソース変数の呼び出し方と似ていて覚えやすいので、いちおう紹介させていただきました。

documentObjectとしてのテンプレート変数の構造

0 - $tv['name'] - テンプレート変数名
1 - $tv['value'] - 値
2 - $tv['display'] - ウィジェット(出力フィルター)
3 - $tv['display_params'] - ウィジェットのパラメータ
4 - $tv['type'] - 入力インターフェイス(text・チェックボックス・テキストエリアなど)

カスタムウィジェット

Note: [+value+] is only special place holder.

1) chunk

@CHUNK: チャンク名
[chunk-name]
<img src="[+value+]" alt="[*pagetitle*]-[(site_name)]" />

または

[chunk-name]
<a href="[+value+]">
<img src="phpThumb.php?src=[+value+]&w=200" alt="[*pagetitle*]-[(site_name)]" />
</a>

2) include
@INCLUDE: tv.inc
[tv.inc]-----------------
<?php
  $value ='[*pagetitle*]-[(site_name)]';
?>


This method only rewrites $value. The array and the object can be passed. In this correspondence, this method is the most important.

-------------------------

3) file
@FILE: tv.inc
[tv.inc]-----------------
  <img src="[+value+]" alt="[*pagetitle*]-[(site_name)]" />
-------------------------

4) eval
@EVAL: return '<img src="' . $value . '" alt="[*pagetitle*]" />';

5) direct
<img src="[+value+]" alt="[*pagetitle*]" />

*Important
In case of emptily $value
Output is nothing.

入力タイプ

[sample chunk] (@CHUNK: chunkname)

<input type="text"
       id="tv[+field_id+]"
       name="tv[+field_id+]"
       value="[+field_value+]"
       [+field_style+]
       tvtype="[+field_type+]"
       onchange="documentDirty=true;"
       style="width:100%" /><br />
field_id     : [+field_id+]<br />
field_type   : [+field_type+]<br />
default_text : [+default_text+]<br />
field_value  : [+field_value+]<br />
field_style  : [+field_style+]<br />
site_name    : [(site_name)]<br />
pagetitle    : [*pagetitle*]<br />
chunk        : {{chunk}}<br />
snippet      : [[snippet]]

PR

  • ロゴ作成ならさぶみっと!コンペ 1点あたり10,000円~│さぶみっと!コンペ
  • KAGOYA
  • ASP at AKIHABARA Japan
  • CMS AWARDS 2007 Winner
ページトップへ