W Drupal 7 domyślnie $messages
zmienna jest drukowana w page.tpl.php.
Czy istnieje sposób drukowania $messages
w pliku node.tpl.php (np. $ Node-mycontenttype.tpl.php).
Po prostu zakładanie <?php print $messages; ?>
lub
<?php print render($page['messages']); ?>
nie działa.
Jest tu tutorial do drukowania $ wiadomości w bloku, ale chciałbym umieścić go w moim pliku node.tpl.php.
template_preprocess_node
więc drupal_get_messages jest pusty, kiedy go wywołujesz.Odpowiedzi:
Właściwie to, co chcesz zrobić, to:
Jak to działa: Rdzeń Drupala sprawdza wartość show_messages w page_process_page. Jeśli ma wartość PRAWDA (domyślnie), wówczas wywołuje motyw („status_messages”) jak wyżej i skutecznie opróżnia pamięć wiadomości, więc wywołanie tej samej funkcji motywu po prostu zwróci pusty ciąg. Jeśli jednak ustawimy tę zmienną na FAŁSZ, uniemożliwi to wywołanie wspomnianej funkcji motywu na stronie proces_strony, co pozwoli nam uzyskać wszystkie wiadomości przy użyciu tej samej funkcji motywu, w wybranym przez nas szablonie.
źródło
Odpowiedź na pytanie, jak wyświetlać wiadomości z bloku oddzielnie od $ messages na page.tpl.php, do którego odwołujesz się w swoim pytaniu, jest dobrym rozwiązaniem. Zasadniczo potrzebujesz czegoś takiego, gdzie YOURTHEME to nazwa twojego motywu i ta funkcja powinna znajdować się w pliku template.php. Właściwie nie uruchomiłem tego kodu, ale mam w nim crack.
Powinieneś być w stanie wyprowadzać wiadomości $ w pliku node.tpl.php
źródło