Drupal 6 如何在drupal视图中有条件地隐藏字段?

Drupal 6 如何在drupal视图中有条件地隐藏字段?,drupal-6,drupal-views,Drupal 6,Drupal Views,我有两个要渲染的字段,但我只希望在第一个字段为空时显示第二个字段。除了覆盖模板文件中的字段外,我是否可以使用内置视图功能中的功能来执行此操作?我通常会将模块用于此类操作。在视图中添加第三个字段,即php自定义字段,并从显示中排除第二个字段。然后,您可以在customfield中编写一个非常快速的PHP代码片段,检查第一个字段是否为空,如果为空,则打印第二个字段。您可以将其转换为使用沉思。你可以这样做: <?php if(empty($node->field_foo[0]['

我有两个要渲染的字段,但我只希望在第一个字段为空时显示第二个字段。除了覆盖模板文件中的字段外,我是否可以使用内置视图功能中的功能来执行此操作?

我通常会将模块用于此类操作。在视图中添加第三个字段,即php自定义字段,并从显示中排除第二个字段。然后,您可以在customfield中编写一个非常快速的PHP代码片段,检查第一个字段是否为空,如果为空,则打印第二个字段。

您可以将其转换为使用沉思。你可以这样做:

    <?php 
if(empty($node->field_foo[0]['view'])){ ?>
<?php print $node->field_bar[0]['view'] ?>
<?php } ?>

  • 添加要显示的字段。选择“从显示中排除”
  • 如果显示上一个字段,请添加要控制的字段。选择“重写输出”。使用令牌替换来显示上一个字段。标记“如果为空则隐藏”
  • 没有三个

  • 注:引用的选项文本可能不正确(我正在查看翻译后的网站),但你明白了。

    我的解决方案是显示字段_1(英文版)和字段_2(翻译版):

    使用面板时:

  • 通过向视图中添加另一个显示来制作视图的两个副本

  • 在原始视图显示中,从显示中删除或排除
    字段_2
    ,在第二个显示中删除
    字段_1

  • 在面板中,可以将两个视图显示添加为面板窗格

  • 对于第一个视图显示窗格,添加
    可见性规则->用户:语言->英语

  • 对于第二个视图显示窗格,添加
    可见性规则->用户:语言->您的第二语言

  • 它看起来很复杂,但对于熟悉面板和视图的人来说却非常简单。 此解决方案不需要更改代码,也不需要主题化知识

    对于视图3,drupal 7

    • 所需输出-如果字段2为空,则显示字段1
    在field1、field2顺序中添加要查看的两个字段,并选中field1复选框“从显示中排除”

    转到字段2并配置“显示无结果行为”。添加field1替换模式,例如[field1],并选择“将数字0计为空”、“如果为空则隐藏”和“如果为空则隐藏重写”


    现在,这将为这两个字段生成if-else功能。

    您可以通过以下步骤轻松完成此操作(我已经在drupal 7中尝试过):

  • 添加这两个字段
  • 使第一个不可见(从显示中排除)
  • 在第二个字段中,转到无结果行为选项卡
  • 写入第一个字段的标记(例如:[field_name])

  • 它应该可以工作,我希望它能与您一起工作

    使用沉思可能非常危险-值得研究使用phptemplate文件(x.tpl.php)将主题逻辑与数据库分离。这并不危险,只是很难维护。从事此项目的未来开发人员需要了解这一点,并且大多数开发人员认为应该在代码中查找代码,而不是隐藏在视图中。为什么您仍然没有接受其中一个答案?