web-dev-qa-db-ja.com

テーマ関数で使用できる変数を知るにはどうすればよいですか?

Menuブロックモジュールを使用しています。 1つのテンプレートでkpr($page);を使用して、メニューブロックが呼び出しているフックを確認しました。次に、テーマのtemplate.phpファイルmytheme_menu_block_wrapper__1()に正しい関数を作成しました。私が読んだ例は、これがいかなる引数も取るべきではないことを示唆しています。

だから私が学習に本当に興味があるのは、ドルーパルをデバッグする方法です。

使用できるすべての変数を表示するdrupal_special_dump()のような使用可能なすべての変数を表示する、呼び出すことができる関数はありますか?任意の助けいただければ幸いです。

5
dm03514

Devel module 、そして素晴らしい dpm() 関数は、Drupal(at少なくとも私はそれがかなり確信している)。

配列やオブジェクトを含む任意の変数で使用でき、適切に構造化された変数の表現を含む標準メッセージ領域にメッセージを送信します。次のようになります。

Devel Output

次のように簡単に使用できます。

_function mytheme_menu_block_wrapper__1($vars) {
  dpm($vars);
}
_

参考までにDrupal 7のすべてのテーマ関数は、そのテーマ関数のデータを含む少なくとも1つの引数を受け取ります。その引数は、上記の例では_$vars_で表されます。

ページ全体のリクエストに対して定義されている変数のリストを取得したい場合は、PHP get_defined_vars() 関数の代わりに。

8
Clive

テーマフックの場合、利用可能な変数は、通常$ variablesという名前のフックに渡されます。 :-)

しかし、ここにすべてのテーマフックの大きなリストがあります: http://api.drupal.org/api/drupal/includes%21theme.inc/function/theme/7

1
paul-m