質問: :type", array(":type" => $node->type"))->fetchall()[0]->count; 次に、私のpage.tpl.phpファイル内で、次のようなことを行う必要があります。global $node_count; echo "<p>$node_count</p>"; $node_countまたは$nodeと同じ方法で、$user変数をスコープ内に作成する方法があることを知っています。私がテーマで見つけたチュートリアルは、テーマ関数全体を書き直すことを含むようです-私は複雑なことは何もしようとはしていません。 .tpl.phpファイルのスコープでこの変数を作成する簡単な方法はありますか?関数のようなものですか?
回答: drupal theming、 template preprocess functions は、特定のテンプレートで使用できる変数を準備する関数です。テンプレートの前処理関数は次々と実行され、すべての変数を含む配列を囲みます。function themename_preprocess_templatename(&$variables) { // your code here. }の形式で、テーマのtemplate.phpに独自の変数を追加できます。hook_node_load実装のノードオブジェクトに値を追加する場合、おそらく次のようになります。function mymodule_node_load($nodes, $types) { foreach ($nodes as $node) { $node->myvariable = 'somevalue'; } } 次に、page.tpl.phpの$ node-> myvariableにアクセスします。 drupalは既にデフォルトで現在のノードオブジェクトを変数に追加しているので、これは前処理関数を記述する必要さえありません(これは template_prepocess_page で発生します) 。)これは、これを単にpage.tpl.phpに追加できることを意味します。<?php if ($node->myvariable): ?> <div class="myvariable"> <?php print $node->myvariable; ?> </div> <?php endif; ?>