$ node selalu tersedia di page.tpl.php


12

Saya secara berkala mendapatkan kesalahan tentang $ node yang tidak terdefinisi dalam salah satu file templat saya. Saya memiliki kondisi sederhana jika memeriksa jenis simpul yang ditampilkan. Saya berasumsi $ node selalu tersedia, atau saya salah?


Mungkin ingin menandai ini sebagai dijawab agar orang lain dapat menggunakan pertanyaan ini :)
Bart

Jawaban:


12

$ node belum tentu ditentukan, dari page.tpl.php Drupal 7 API :

$ node: Objek node, jika ada node yang dimuat secara otomatis yang terkait dengan halaman, dan ID node adalah argumen kedua di jalur halaman (misalnya node / 12345 dan node / 12345 / revisi, tetapi bukan komentar / balasan / 12345).


8

Secara default, hanya pada halaman node didefinisikan variabel $ node. Untuk halaman depan (feed), lihat halaman, komentar, dll.

Jika Anda ingin variabel $ node didefinisikan pada halaman yang bukan node, maka Anda harus mengedit / membuat fungsi MYTHEME_preprocess_page (& $ variabel) di file theme.php theme Anda.

Untuk menghindari kesalahan Anda, dalam file templat Anda bungkus variabel $ node dalam

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

Atau hapus sepenuhnya


$ node dapat menjadi variabel yang didefinisikan pada page.tpl.php
Bart

1
secara default, ya, jika itu NODE. Jika tidak, maka tidak didefinisikan. Luruskan fakta Anda, dan jangan downvoting jawaban yang valid.
iStryker

Pernyataan "Hanya pada halaman node yang ditentukan oleh variabel $ node." tidak valid
Bart
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.