drupal_set_message()在Drupal 7上的node.tpl.php模板中不起作用

时间:2011-05-26 13:39:51

标签: php drupal drupal-7 drupal-theming drupal-templates

我的问题在于 <?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中运行

3 个答案:

答案 0 :(得分:1)

{messages}变量未列在node.tpl.php documentation for Drupal 7中。您是否在html.tpl.php中输出了$ page_top变量?我想这可能是消息在D7中输出的地方。

答案 1 :(得分:0)

Drupal 7可能会在节点模板之前呈现消息,这就是您无法看到这些消息的原因。

是的,我也感觉不对,here is a little discussion以及对该主题的确认。 (已结束:按设计工作)

答案 2 :(得分:0)

不是100%肯定,但您可以创建preprocess_node函数并将$ messages传递给节点模板。

function template_preprocess_node(&$vars){
  $vars['messages'] = drupal_get_messages();
}