Dans Drupal 7, par défaut, la $messages
variable est imprimée dans page.tpl.php.
Existe-t-il un moyen d'imprimer $messages
dans un fichier node.tpl.php (par exemple $ node-mycontenttype.tpl.php).
Juste mettre <?php print $messages; ?>
ou
<?php print render($page['messages']); ?>
ne fonctionne pas.
Il y a un tutoriel ici pour imprimer des messages $ dans un bloc, mais je voudrais le mettre dans mon fichier node.tpl.php.
template_preprocess_node
donc drupal_get_messages est vide lorsque vous l'appelez.Réponses:
En fait, ce que vous voulez faire est le suivant:
Comment cela fonctionne: Drupal core vérifie la valeur de show_messages dans theme_process_page. S'il est VRAI (par défaut), il appelle le thème ('status_messages') comme ci-dessus et vide efficacement le stockage des messages, donc appeler la même fonction de thème plus tard renverra simplement une chaîne vide. Cependant, si nous définissons cette variable sur FALSE, cela empêche que ladite fonction de thème soit appelée dans process_page, ce qui nous permet d'obtenir tous les messages en utilisant la même fonction de thème, dans un modèle de notre choix.
la source
La réponse dans Comment afficher les messages d'un bloc séparément de $ messages dans page.tpl.php que vous avez référencé dans votre question est une bonne façon de procéder. Essentiellement, vous avez besoin de quelque chose comme ça où YOURTHEME est le nom de votre thème et cette fonction devrait être dans votre template.php. Je n'ai pas réellement exécuté ce code mais j'ai une fissure.
Vous devriez alors pouvoir sortir $ messages dans votre node.tpl.php
la source