質問: $ messagesをnode.tpl.phpファイルに出力する drupal 7では、デフォルトで$messages変数がpage.tpl.phpに出力されます。node.tpl.phpファイル(例:$ node-mycontenttype.tpl.php)で$messagesを印刷する方法はありますか?.<?php print $messages; ?>または<?php print render($page['messages']); ?>を置くだけでは機能しません。$ messagesをブロックに出力するためのチュートリアル here がありますが、それを私のnode.tpl.phpファイルに入れたいと思います。
回答: page.tpl.phpの$ messagesとは別にブロックからのメッセージを表示する方法 での答えは、質問で参照したものに進むのに良い方法です。基本的に、yourthemeがテーマの名前であり、この関数がtemplate.phpにあるような、このようなものが必要です。私は実際にはこのコードを実行していませんが、ひび割れがあります。function yourtheme_preprocess_node(&$vars) { $output = ''; foreach (drupal_get_messages(null, false) as $type => $messages) { $output .= "<div class=\"messages $type\">\n"; if (count($messages) > 1) { $output .= " <ul>\n"; foreach ($messages as $message) { $output .= ' <li>' . $message . "</li>\n"; } $output .= " </ul>\n"; } else { $output .= $messages[0]; } $output .= "</div>\n"; } $vars['messages'] = $output; } その後、node.tpl.phpに$ messagesを出力できるはずです。