2012-10-30 51 views
0

我使用hook_node_view來顯示節點的內容而不是另一個節點的內容。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

語言法語

Gabarit:

頁/ chambres.tpl.php

有什麼想法?

編輯:如果我通過更換線路5:

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

因此刪除以前添加到$所有其他內容節點 - >內容,我得到的結果是:

ROOM

LanguageFrançais

這意味着「語言Fran 「是在鉤子被調用後添加的。但是哪裏 ?從@Clive

+0

我迷失在太空! – JvdBerg

+0

我也是。提出一個很好的問題太多了。 – theredled

+0

我不明白你想要做什麼,但在性能方面,我建議不要這樣做。創建一個節點模板節點 - 89.tpl.php並在那裏添加自定義內容。 –

回答

0

工作答案:

這將是實現後你同樣的勾正常運行,從而更改被添加到另一個模塊。嘗試按照如何更新模塊的權重指南來使模塊的鉤子在任何其他模塊之後運行,這應該可以做到。