web-dev-qa-db-ja.com

template.phpで使用される変数

Template.phpファイルで直接使用できる変数とオブジェクトを知るにはどうすればよいですか?

function garland_separate_terms($node_taxonomy) {
  if ($node_taxonomy) {
    foreach ($node_taxonomy as $term) { 
      $links[$term->vid]['taxonomy_term_'. $term->tid] // …
      // …
    }
    // …
  }
}

なぜ彼は$ termオブジェクトを直接使用できるのですか?

1
enjoylife

まず、この関数が何であるかを見てください。テーマ機能ですか?テーマの接頭辞がありますが、 http://drupalcontrib.org/api/search/6/separate_terms で見つけることができないため、おそらくありません。

引数に_$node_taxonomy_を取得します。これは分類用語のリストのようですので、それらにアクセスできます。

これらの変数を受け取ることはなく、引数に含まれる変数のみを受け取るため、他のすべては利用できません。 (まあ、あなたはグローバル変数にアクセスできますが、私はあなたを混乱させたくありません)

彼は_$term_が用語の配列であることを知っているため、_$node_taxonomy_を使用でき、foreachでそれらをループします。

疑問がある場合は、次回develモジュールを使用してdsm($node_taxonomy)行を追加し、その変数がどのように構築されているかを確認してください。

0
snufkin

簡単な答え-行foreach ($node_taxonomy AS $term)は、$ term変数の出所です。これは基本的なPHPismであり、$ node_taxonomyを配列として扱い、配列を反復処理するときに、その配列の現在の項目を$ term変数に入れます。

Snufkinが指摘したように、$ node_taxonomyは、自動的にアクセスできる唯一の変数です。

2
Eaton

Eatonによってすでに報告されているように、template.phpファイルには、テーマで使用されるテンプレートファイルから呼び出される関数が含まれています。
garland_separate_terms()は、Garlandが使用する ファイルに存在する関数ではありません Drupalが付属しています。

page.tpl.php は変数$nodeにアクセスできます。これには、視覚化されているページがノードページである場合のノードオブジェクトが含まれます。また node.tpl.php は変数$nodeにアクセスできます。それらは、その関数を呼び出すことができるテンプレートファイルの一部であり、ノードオブジェクトにアクセスでき、そこからノードに関連付けられた分類用語のリストにアクセスできます。

1
kiamlaluno