Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php hook\u node\u查看奇怪的行为_Php_Drupal - Fatal编程技术网

Php hook\u node\u查看奇怪的行为

Php hook\u node\u查看奇怪的行为,php,drupal,Php,Drupal,我正在使用hook\u node\u视图显示一个节点的内容,而不是另一个节点的内容 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的模板显示“房

我正在使用hook\u node\u视图显示一个节点的内容,而不是另一个节点的内容

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的模板显示“房间”文本(用于测试)

但这里展示的不仅仅是“房间”:

房间

法语

加巴里特:

pages/chambres.tpl.php

有什么想法吗

编辑:如果我将第5行替换为:

    $node->content = array('mymodule_additional_content' => node_view($room));
因此,删除先前添加到$node->content的所有其他内容,我得到了以下结果:

房间

法语


这意味着在调用钩子之后添加“语言法语”。但是在哪里?

来自@Clive的工作答案:


它将是另一个模块,它实现了在您的钩子之后运行的同一个钩子,因此您的更改将被添加到。试着按照“如何更新模块的重量指南”的要求,使模块的挂钩紧跟其他挂钩,这样就可以了。

我也是。我不明白你到底想做什么,但就表现而言,我建议不要这样做。创建一个节点模板node--89.tpl.php并在那里添加自定义内容。实际上,这是我在本帖中听到的更好的解决方案:我在这里展示的是一个示例,在实际情况下,“90”必须动态找到。尝试向
节点视图()添加视图模式。
调用:
$node->content['mymodule\u additional\u content']=node\u视图($room,'STREATER');
这将是另一个模块,它实现了在您之后运行的同一个钩子,因此您的更改将被添加到。请尝试按照指南使您的模块的钩子在任何其他钩子之后运行,这样就可以了