質問

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 オブジェクトを直接使用できるのでしょうか?

役に立ちましたか?

解決

まず、この関数とは何かを見てください。それはテーマ機能ですか?テーマのプレフィックスがありますが、私はそれを見つけることができません http://drupalcontrib.org/api/search/6/separate_terms, 、おそらくそうではありません。

あなたは得ます $node_taxonomy 議論では、これは分類学の用語のリストのように思われるため、それらにアクセスできます。

他のすべてはあなたが利用できません。なぜなら、あなたはそれらの変数を受け取らず、議論の変数だけを受け取るからです。 (まあ、あなたはグローバル変数にアクセスできますが、私はあなたを混乱させたくありません)

彼は使用できます $term 彼はそれを知っているからです $node_taxonomy 一連の用語であり、それらをforeachでループします。

次回は疑わしい場合は、Develモジュールを使用して追加します dsm($node_taxonomy) その変数がどのように構築されるかを確認するためのライン。

他のヒント

シンプルな答え - ライン foreach ($node_taxonomy AS $term) $term 変数の由来です。これは、$node_taxonomy を配列として扱い、配列を反復処理する際に、その配列の現在の項目を $term 変数に入れる基本的な PHPism です。

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

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

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

ライセンス: CC-BY-SA帰属
所属していません drupal.stackexchange
scroll top