2012-01-29 64 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

相关问题