Я періодично отримую помилку про те, що $ node не визначається в одному з моїх файлів шаблону. У мене є проста умова, якщо перевіряється вид вузла, що відображається. Я припускав, що $-вузол завжди доступний, або я помиляюся?
Я періодично отримую помилку про те, що $ node не визначається в одному з моїх файлів шаблону. У мене є проста умова, якщо перевіряється вид вузла, що відображається. Я припускав, що $-вузол завжди доступний, або я помиляюся?
Відповіді:
$ node не обов'язково визначається з сторінки.tpl.php Drupal 7 API :
$ node: Об'єкт вузла, якщо на сторінці пов'язаний автоматично завантажений вузол, і ідентифікатор вузла є другим аргументом на шляху сторінки (наприклад, node / 12345 та node / 12345 / reitions, але не коментар / відповідь / 12345).
За замовчуванням лише на сторінках вузла визначена змінна $ вузол. Для головної сторінки (каналу) переглядайте сторінки, коментарі тощо, вони не є.
Якщо ви хочете, щоб змінна $ node визначена на сторінці, що це не вузол, вам доведеться відредагувати / створити функцію MYTHEME_preprocess_page (& $ змінних) у вашому файлі теми template.php.
Щоб уникнути помилки, у файл шаблону загорніть змінну $ node у
if (isset($node)) {
// do something with $node
}
Або видаліть його повністю