Od czasu do czasu pojawia się błąd związany z niezdefiniowaniem $ node w jednym z moich plików szablonów. Mam prosty warunek, który sprawdza wyświetlany typ węzła. Zakładam, że $ node jest zawsze dostępny, czy się mylę?
$ node: Obiekt węzła, jeśli istnieje automatycznie załadowany węzeł powiązany ze stroną, a identyfikator węzła jest drugim argumentem w ścieżce strony (np. node / 12345 i node / 12345 / rewizje, ale nie komentarz / odpowiedź / 12345).
Domyślnie tylko na stronach węzłów jest zdefiniowana zmienna $ node. W przypadku strony głównej (kanału informacyjnego) przeglądaj strony, komentarze itp. Nie są.
Jeśli chcesz, aby zmienna $ node była zdefiniowana na stronie, która nie jest węzłem, będziesz musiał edytować / utworzyć funkcję MYTHEME_preprocess_page (& $ names) w pliku theme.php.
Aby uniknąć błędu, w pliku szablonu zawiń zmienną $ node w pliku
Odpowiedzi:
$ node niekoniecznie jest zdefiniowany, z API page.tpl.php Drupal 7 :
źródło
Domyślnie tylko na stronach węzłów jest zdefiniowana zmienna $ node. W przypadku strony głównej (kanału informacyjnego) przeglądaj strony, komentarze itp. Nie są.
Jeśli chcesz, aby zmienna $ node była zdefiniowana na stronie, która nie jest węzłem, będziesz musiał edytować / utworzyć funkcję MYTHEME_preprocess_page (& $ names) w pliku theme.php.
Aby uniknąć błędu, w pliku szablonu zawiń zmienną $ node w pliku
Lub usuń go całkowicie
źródło