Drupal 7 Drupal 7交替节点显示

Drupal 7 Drupal 7交替节点显示,drupal-7,field,alter,unset,Drupal 7,Field,Alter,Unset,我有一个内容类型与两个图像字段,横幅和标志 我正在尝试实现一种逻辑,它将允许两个选项中的一个显示,这取决于编辑选择仅显示横幅还是仅显示单选按钮选项中的徽标 我设置了一个小的自定义模块,实现了hook\u node\u view,并尝试从节点对象中取消图像字段,但没有成功。代码片段如下: function mymodule_node_view($node, $view_mode, $langcode){ unset($node->field_main_picture[$node-&g

我有一个内容类型与两个图像字段,横幅和标志

我正在尝试实现一种逻辑,它将允许两个选项中的一个显示,这取决于编辑选择仅显示横幅还是仅显示单选按钮选项中的徽标

我设置了一个小的自定义模块,实现了hook\u node\u 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;
}

这些尝试都没有成功。

我找到了问题的答案

节点对象包含一个名为content的数组,这是Drupal将打印到屏幕上的可渲染数据。 我的不安需要发生在那个阵列中。即:

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

主图像消失。

我几乎不建议您在这样编程时使用模块。它允许您在页面中显示变量并可视化树。例如,您可以在
hook\u node\u view()
中调用
dpm($node)
函数,查看
$node
中的内容以及如何访问它