hook_node_view奇怪的行为

时间:2012-10-30 15:06:40

标签: php drupal

我正在使用hook_node_view来显示节点的内容而不是另一个节点的内容。

function mymodule_node_view($node, $view_mode, $langcode) {
  if ($node->nid == 89) {
    $room = node_load(90);

    $node->content['mymodule_additional_content'] = node_view($room);
  }
}

节点90的模板显示“ROOM”文本(用于测试)。

但这里显示的不是“ROOM”:

  

房间

     

LanguageFrançais

     

Gabarit:

     

页/ chambres.tpl.php

有什么想法吗?

编辑:如果我用以下代码替换第5行:

    $node->content = array('mymodule_additional_content' => node_view($room));

因此删除之前添加到$ node->内容的所有其他内容,我得到了结果:

  

房间

     

LanguageFrançais

这意味着在调用钩子后添加“LanguageFrançais”。但在哪里?

1 个答案:

答案 0 :(得分:0)

@Clive的回答:

它将是另一个模块,它实现了在您之后运行的相同钩子,因此您的更改将被添加到。尝试按照如何更新模块的权重指南,使模块的钩子跟随任何其他人运行,这应该可以解决问题。