0

drupal を使い始めてからずっと気になっていたのは、テンプレート ファイルで参照している $node/$classes/$attributes を php エンジンがどのように正確に認識しているかということです。これらの変数は決してグローバルとして宣言されないので、PHP エンジンはどの「$node」を参照しているのかをどのように判断するのでしょうか??

4

2 に答える 2

1

http://drupal.org/node/223430を参照してください

.tpl.phpプリプロセッサの主な役割は、テンプレート ( ) ファイル内に配置される変数を設定することです。Drupal 7 以降では、テンプレートと関数に適用されますが、Drupal 6 では、前処理関数はテンプレートとして実装されたテーマ フックにのみ適用されます。プレーン テーマ関数は、プリプロセッサと対話しません。

APIで参照されてtemplate_preprocess*いる とを見てください。これらの関数は、ノード テンプレートでアクセスできるさまざまな変数を設定するコードを示しています。template_process

同様の方法で、テーマ関数に独自の前処理コードを追加して、次のように tpl.php ファイルで使用可能な変数に追加することもできます。

/**
 * Implements hook_preprocess_HOOK().
 */
function MY_MODULE_preprocess_node(&$variables) {
   $variables['hello'] = 'Look at me now!';
}

$helloこの後、ファイルで参照できnode.tpl.phpます。

于 2012-11-14T21:25:01.363 に答える
0

これらの変数は、Drupal のテンプレート エンジンによって設定されます。

于 2012-11-14T21:09:57.400 に答える