it-swarm-ja.com

$ nodeは常にpage.tpl.phpで利用可能です

$ nodeがテンプレートファイルの1つで未定義であるというエラーが定期的に発生します。表示されているノードタイプをチェックする単純なif条件があります。 $ nodeは常に利用できると思いましたか、それとも間違っていますか?

12
marksward

$ -nodeは必ずしも page.tpl.php Drupal 7 API から定義されているわけではありません):

$ node:ページに関連付けられた自動ロードされたノードがあり、ノードIDがページのパスの2番目の引数である場合のノードオブジェクト(たとえば、node/12345およびnode/12345/revisionsですが、comment/reply /ではありません12345)。

12
Bart

デフォルトでは、ノードページでのみ$ node変数が定義されています。フロントページ(フィード)、閲覧ページ、コメントなどは対象外です。

ノードではないページで$ node変数を定義する場合は、テーマのtemplate.phpファイルでMYTHEME_preprocess_page(&$ variables)関数を編集/作成する必要があります。

エラーを回避するには、テンプレートファイルで$ node変数を

if (isset($node)) {
  // do something with $node
}

または完全に削除します

8
iStryker