ページ 11

getTemplateVarでtvの値を取得する場合の構文について

Posted: 2012年1月06日(金) 11:54
by KURO
質問です。よろしくお願いします。

PHPに関して全く素人のくせに、必要に迫られてスニペット制作に挑戦しているのですが、どうにも構文がわからず困っています。

やりたいことは、『スニペットを記述したリソースとは別のリソースから、任意のテンプレート変数の値を取得する』というものなのですが、

スニペットを記述したリソースのテンプレート変数なら
$tv = $modx->getTemplateVar('hoge');
で、テンプレート変数hogeの値を取得できることは確認できています。

これを、他のリソース、例えばID=3のリソースのテンプレート変数hogeの値を取得したいのです。
ネット上で検索していろんなパターンを試してみたのですが、うまく値を取得できません。

getfieldというスニペットが似たような動作をするので、なにかヒントにならないかと思ってソースを見てみたのですが、
ソース内の
$gfArrTV = $modx->getTemplateVar($gfStrDocField,'*',$gfIntDocId);
という部分を真似て
$tv = $modx->getTemplateVar('hoge','*',3);
とか、これに近いパターンをいろいろ試したのですが、うまくいきません。
もともとの構文を知らないのでいきあたりばったりでいろいろ試しているのですが、
なにが足りないのかがわかっていないのでお手上げな状態です。

どなたかご教授いただけないでしょうか。よろしくお願いします。

Re: getTemplateVarでtvの値を取得する場合の構文について

Posted: 2012年1月07日(土) 00:54
by KURO
すいません、自己解決しました :oops:

$array = $modx->getTemplateVarOutput(hoge,3);
$tv = $array['hoge'];

↑これでID=3のリソースのテンプレート変数hogeの値を取得できました。

いろいろ試してた中でこの正解例も試してたつもりだったんですが、どこかで間違えて
$array = $modx->getTemplateVarOutput($hoge,3);
と、hogeを$hogeにしてしまい、気付かないまま試していたみたいです。

初歩的な質問で板を汚してしまい、申し訳ありませんでした。