Php hook\u node\u查看奇怪的行为
我正在使用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的模板显示“房
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');
这将是另一个模块,它实现了在您之后运行的同一个钩子,因此您的更改将被添加到。请尝试按照指南使您的模块的钩子在任何其他钩子之后运行,这样就可以了