【问题标题】:How can I use a custom template file when node_view is executed?执行 node_view 时如何使用自定义模板文件?
【发布时间】:2015-09-02 19:28:18
【问题描述】:

我正在尝试与使用drupal_render(node_view($node)); 的模块集成以获取渲染节点。我有一个自定义模板文件node--<type>.tpl.php,它在简单地查看节点时工作正常,但是,当使用node_view 渲染节点时,不使用模板文件,而是使用模块/节点中的核心node.tpl.php。我还实现了hook_preprocess_node,在这种情况下似乎也不会触发。

重新创建它的一个简单案例是实现hook_preprocess_node 并包含一个看门狗消息。然后在devel execute php中执行如下:

$node = node_load(<nid>);
print drupal_render(node_view($node));

任何帮助将不胜感激。

【问题讨论】:

    标签: php drupal drupal-7 drupal-theming


    【解决方案1】:

    问题在于,在另一个模块正在执行node_view 函数时,它使用的是管理主题而不是公共主题。

    为了消除这个问题,我实现了hook_theme_registry_alter 并将自定义模板放在自定义模块中。这样,无论选择什么主题,它们都会被使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2014-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多