Drupal:如何将变量从节点传递到块?
我想对
node.tpl.php
中的节点字段进行一些处理,- 将其保存到变量中
- 并显示在节点之后加载的块中(在同一页面上)。
如何将变量从节点传递到块?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我想对
node.tpl.php
中的节点字段进行一些处理,如何将变量从节点传递到块?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
由于您运行的是 Drupal 7,因此您可以访问新的 hook_page_alter() 函数,来自自定义模块或主题。通过实现这一点,您可以轻松地将主要内容区域的部分(例如节点)移动到任意数量的不同块中。您需要使用 show()、hide() 和 < a href="http://api.drupal.org/api/drupal/includes--common.inc/function/render/7" rel="nofollow">render() 函数可以正确隐藏内容。
或者,在 node.tpl.php 模板中使用 show() 和 hide() 应该正确隐藏元素,然后您可以使用 menu_get_object() 函数。
通常在 hook_page_alter() 此处,但该网站目前已关闭。
Since you're running Drupal 7, you have access to the new hook_page_alter() function, from either a custom module or theme. By implementing this, you can easily move parts of the main content area (eg, the node), into any number of different blocks. You'll want to use the show(), hide() and render() functions to properly hide content.
Alternatively, using show() and hide() from within your node.tpl.php template should properly hide the elements, and then you could grab the node object from your block using the menu_get_object() function.
There is normally a video available on hook_page_alter() here, but the site is down at the moment.
纯粹主义者会说你不应该在那里这样做。 hook_node_load()可用于字段的处理。
然后你可以使用 menu_get_item()在您的块中获取
$node
对象并访问您添加到其中的任何值。A purist would say that you shouldn't be doing it there. hook_node_load() can be used for processing of fields.
Then you can just use menu_get_item() in your block to get the
$node
object and access any values you have added to it.