【问题标题】:Drupal: how to pass variable from node to block?Drupal:如何将变量从节点传递到块?
【发布时间】:2011-01-13 22:26:01
【问题描述】:

我想在

  1. node.tpl.php中的节点字段做一些处理
  2. 将其保存到变量中
  3. 并显示在节点之后加载的块中(在同一页面上)。

如何将变量从节点传递到块?

【问题讨论】:

    标签: drupal drupal-theming drupal-7


    【解决方案1】:

    由于您正在运行 Drupal 7,您可以从自定义模块或主题访问新的 hook_page_alter() 函数。通过实现这一点,您可以轻松地将部分主要内容区域(例如,节点)移动到任意数量的不同块中。您需要使用show()hide()render() 函数来正确隐藏内容。

    或者,在 node.tpl.php 模板中使用 show() 和 hide() 应该可以正确隐藏元素,然后您可以使用 menu_get_object() 函数从块中获取节点对象。

    hook_page_alter() here 上通常有视频可用,但该网站目前已关闭。

    【讨论】:

    • 谢谢,@jhedstrom,hook_page_alter() 似乎非常适合! :)
    【解决方案2】:

    对节点字段做一些处理 node.tpl.php

    一个纯粹主义者会说你不应该在那里做。 hook_node_load() 可用于字段的处理。

    然后你可以在你的块中使用menu_get_item() 来获取$node 对象并访问你添加到它的任何值。

    【讨论】:

      猜你喜欢
      • 2021-11-23
      • 2019-05-02
      • 1970-01-01
      • 1970-01-01
      • 2016-08-14
      • 1970-01-01
      • 1970-01-01
      • 2012-04-28
      相关资源
      最近更新 更多