2012-01-29 93 views
0

我有,我想在一個塊輸出的一個節點,因爲節點可以包含不同類型的字段我不想指定的字段。Drupal自定義模塊|我如何輸出節點的所有字段的塊

有人能解釋我這可怎麼辦呢?

我嘗試這樣做,但我只是得到通知的一個長長的清單,沒有任何輸出。

function mymodule_block_view($delta = '') { 
    $node = node_load(6); 
    $node_content = node_view($node); 

    switch($delta){ 
     case 'mymodule': 
     $block['subject'] = t('title'); 
     $block['content'] = theme('block', $node_content); 
    } 
    return $block; 
} 

提前感謝! 結果:無內容和注意事項的列表:

*Notice: Undefined index: #block in template_preprocess_block() (line 937 of /home/user/public_html/drupal/modules/block/block.module). 
Notice: Trying to get property of non-object in template_preprocess_block() (line 939 of /home/user/public_html/drupal/modules/block/block.module). 
Notice: Trying to get property of non-object in template_preprocess_block() (line 940 of /home/user/public_html/drupal/modules/block/block.module). 
Notice: Trying to get property of non-object in template_preprocess_block() (line 943 of* 
+0

嘿,如何使用hook_block來代替,並將塊內容設置爲節點 - >內容值,即節點已經呈現的版本。 – 2012-01-30 15:34:05

+0

僅供參考 - 有一個[節點塊模塊](http://drupal.org/project/nodeblock)可用。 _「這個模塊可以讓你爲一個塊指定內容類型(S)」的答案_ – nmc 2012-01-30 15:37:06

回答

1

我已經有了一個結果,當我使用掛鉤節點。 在發佈這個問題之前,我已經測試了鉤子節點,但是,我不知道爲什麼它不工作。

不知道這種方式是最好/最簡單的方法,但我有一個輸出,所以我很高興!

function mymodule_block_view($delta = '') { 

    switch($delta){ 
     case 'mymodule':    
       $node_content = node_view(node_load(6)); 
       $content = theme('node', $node_content); 

       $block = array(
       'subject' => t('My Module'), 
       'content' => $content); 
    } 
    return $block; 
} 

還是謝謝!

0

你有兩個問題:

1)node_view()返回其需要使用drupal_render()

2中呈現的數組)你不需要在這個內容上使用主題('block')。

如果你想節點的對象傳遞給你的tepmlate_preprocess_block和你匹配theme文件,你可以使用這個

case 'mymodule': 
    $block['subject'] = t('title'); 
    $block['#node'] = $node; 
    $block['content'] = ''; 

然後,您可以使用您在主題化的文件希望節點的任何屬性,通過訪問$ block ['#node']。

+0

感謝,雖然我不能得到任何結果: 1)我用drupal_render(),但沒有任何結果..做某事錯誤我認爲 2)這是你無法追隨你的路徑。 template_preprocess_block,這是否意味着'模板'這個詞需要被你自己的模塊名所替代,或者是否有一個或多個給定功能給定製變量的文檔? – 2012-01-29 19:39:00

+0

儘量不要在這個鉤子裏調用主題('block')。 – yoavmatchulsky 2012-01-29 22:23:00