drupal_set_message() 在 Drupal 7 上的 node.tpl.php 模板中不起作用
我的问题是
在node.tpl.php
在node.tpl.php中,我也做了 查看主题模板是否设置正确。答案是肯定的。
我还在我的 [theme].info 文件中设置了 page_top 和 page_bottom 区域[内容] = 内容 区域[帮助] = 帮助 区域[page_top] = 页面顶部 regions[page_bottom] = Page Bottom
$messages 在 page.tpl.php 中输出
经过所有这些检查后,drupal_set_message() 在 node.tpl.php 中仍然无法工作
My problem is with<?php drupal_set_message('Hello World'); ?>
in node.tpl.php
In node.tpl.php, I have also done<?php print_r(get_defined_vars()); ?>
to find out if the theme template is set correctly. The answer is yes.
I also have page_top and page_bottom set in my [theme].info fileregions[content] = Content
regions[help] = Help
regions[page_top] = Page Top
regions[page_bottom] = Page Bottom
$messages is outputted in page.tpl.php<div id="messages">
<?php print $messages; ?>
</div>
After checking through all these, drupal_set_message() is still not working in node.tpl.php
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Drupal 7 可能会在节点模板之前渲染消息,这就是您看不到这些消息的原因。
是的,我也觉得不对,这里有一些关于该主题的讨论和确认。 (关闭:按设计工作)
Drupal 7 might render the messages before the node templates, that's why you can't see those messages.
Yes, it feels wrong to me too, and here is a little discussion and confirmation about the topic. (Closed: work as designed)
不是 100% 确定,但您也许可以创建一个 preprocess_node 函数并将 $messages 传递给节点模板。
Not 100% sure, but you might be able to create a preprocess_node function and pass $messages to the node templates.
$messages 变量未在 节点中列出Drupal 7 的 .tpl.php 文档。您的 中是否输出 $page_top 变量html.tpl.php?我认为这可能是 D7 中消息输出的地方。
The $messages variable isn't listed in the node.tpl.php documentation for Drupal 7. Do you have the $page_top variable being output in your html.tpl.php? I think that may be where the messages get output in D7.