En Drupal 7, por defecto, la $messages
variable se imprime en page.tpl.php.
¿Hay alguna manera de imprimir $messages
en un archivo node.tpl.php (por ejemplo, $ node-mycontenttype.tpl.php).
Simplemente poner <?php print $messages; ?>
o
<?php print render($page['messages']); ?>
no funciona.
Hay un tutorial aquí para imprimir $ mensajes en un bloque, pero me gustaría ponerlo en mi archivo node.tpl.php.
template_preprocess_node
lo que drupal_get_messages está vacío cuando se llama a ella.Respuestas:
En realidad, lo que quieres hacer es esto:
Cómo funciona esto: Drupal core verifica el valor de show_messages en theme_process_page. Si es VERDADERO (predeterminado), entonces llama al tema ('status_messages') como se indica arriba, y efectivamente vacía el almacenamiento de mensajes, por lo que llamar a la misma función de tema más tarde solo devolverá una cadena vacía. Sin embargo, si establecemos esa variable en FALSE, esto evita que dicha función de tema se invoque en process_page, lo que nos permite obtener todos los mensajes utilizando la misma función de tema, en una plantilla de nuestra elección.
fuente
La respuesta en Cómo mostrar mensajes de un bloque por separado de $ messages en page.tpl.php a los que hizo referencia en su pregunta es un buen camino a seguir. Esencialmente, necesita algo como esto donde YOURTHEME es el nombre de su tema y esta función debe estar en su template.php. En realidad no he ejecutado este código, pero tengo una grieta en él.
Entonces deberías poder generar $ mensajes en tu nodo.tpl.php
fuente