【问题标题】:Drupal 7 alter node displayDrupal 7 更改节点显示
【发布时间】:2014-08-14 13:54:30
【问题描述】:

我的内容类型有两个图像字段,横幅和徽标。

我正在尝试实现允许两者之一显示的逻辑,具体取决于编辑器选择仅显示横幅还是仅显示单选按钮选项中的徽标。

我设置了一个实现 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;
}

这些尝试都没有奏效。

【问题讨论】:

    标签: drupal-7 field alter unset


    【解决方案1】:

    我找到了问题的答案。

    节点对象包含一个名为 content 的数组,它是 Drupal 将打印到屏幕的可渲染数据。 我的 unsets 需要在那个数组中进行。即:

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

    而主画面图像消失。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多