问题描述
|
我的问题是
<?PHP drupal_set_message(\'Hello World\'); ?>
在node.tpl.PHP中
在node.tpl.PHP中,我也做了
<?PHP print_r(get_defined_vars()); ?>
找出主题模板设置是否正确。答案是肯定的。
我的[theme] .info文件中还设置了page_top和page_bottom
regions[content] = Content
regions[help] = Help
regions[page_top] = Page Top
regions[page_bottom] = Page Bottom
$ messages输出在page.tpl.PHP中
<div id=\"messages\">
<?PHP print $messages; ?>
</div>
在检查完所有这些之后,drupal_set_message()在node.tpl.PHP中仍然不起作用
解决方法
Drupal 7的node.tpl.php文档中未列出$ messages变量。在html.tpl.php中是否输出了$ page_top变量?我认为这可能是消息在D7中输出的地方。
,Drupal 7可能会在节点模板之前渲染消息,这就是为什么您看不到这些消息的原因。
是的,我也觉得错了,这里有一些关于该主题的讨论和确认。 (关闭:按设计工作)
,不确定100%,但是您可以创建preprocess_node函数并将$ messages传递给节点模板。
function template_preprocess_node(&$vars){
$vars[\'messages\'] = drupal_get_messages();
}