2014-06-24 78 views
0

我有一个包含两个图像字段,横幅和徽标的内容类型。Drupal 7改变节点显示

我想实现的逻辑,将允许两个显示取决于编辑选择显示只是横幅或单选按钮选项的标志。

我设置了一个小自定义模块,实现了hook_node_view,并尝试从节点对象中取消设置图像字段,但没有喜悦。代码片段如下:

function mymodule_node_view($node, $view_mode, $langcode){ 
    unset($node->field_main_picture[$node->language][0]); 
    unset($node->field_main_picture); 
    $node->field_main_picture = null; 
} 

这些尝试都没有奏效。

有什么建议吗?

回答

0

我找到了我的问题的答案。

节点对象包含一个名为的数组,内容这是Drupal将打印到屏幕上的可呈现数据。 这是在我的unsets需要发生的阵列中。 I.E:

 unset($node->content['field_main_picture']); 

并且主图像图像消失。

0

当你编程时,我几乎建议你不要使用Devel模块。它允许您在页面中显示变量并可视化树。例如,您可以拨打hook_node_view()中的dpm($node)函数以查看$node中的内容以及如何访问它。