getTemplateVarでtvの値を取得する場合の構文について トピックは解決済みです

プログラム(機能)関連の開発の話題
KURO
メンバー
メンバー
記事: 2
登録日時: 2011年9月21日(水) 02:03

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

投稿記事by KURO » 2012年1月06日(金) 11:54

質問です。よろしくお願いします。

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

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

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

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

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

どなたかご教授いただけないでしょうか。よろしくお願いします。
KURO
メンバー
メンバー
記事: 2
登録日時: 2011年9月21日(水) 02:03

Re: getTemplateVarでtvの値を取得する場合の構文について  トピックは解決済みです

投稿記事by KURO » 2012年1月07日(土) 00:54

すいません、自己解決しました :oops:

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

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

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

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