【发布时间】:2010-12-05 18:29:03
【问题描述】:
我有两个要渲染的字段,但我只想在第一个字段为空时显示第二个字段。如果没有覆盖模板文件中的字段,我可以使用内置视图功能中的功能吗?
【问题讨论】:
-
为什么您还没有接受其中一个答案?
标签: drupal-6 drupal-views
我有两个要渲染的字段,但我只想在第一个字段为空时显示第二个字段。如果没有覆盖模板文件中的字段,我可以使用内置视图功能中的功能吗?
【问题讨论】:
标签: drupal-6 drupal-views
对于视图 3,drupal 7
添加两个字段以按 field1、field2 顺序查看并选中 field1 复选框“从显示中排除”。
转到字段 2 并配置“不显示结果行为”。添加 field1 替换模式,例如 [field1] 并选择“将数字 0 视为空”、“如果为空则隐藏”和“如果为空则隐藏重写”。
现在这将为这两个字段生成 if else 功能。
【讨论】:
PS:引用的选项文本可能不是正确的(我正在查看翻译的网站),但您明白了。
【讨论】:
我通常会使用views_customfield 模块来处理这种事情。将第三个字段添加到您的视图中,即 php 自定义字段,并从显示中排除您的第二个字段。然后,您可以在 customfield 中编写一个非常快速的 PHP sn-p 来检查第一个字段是否为空,如果是则打印出第二个字段。
【讨论】:
您可以通过以下步骤轻松做到这一点(我已经在 drupal 7 中尝试过):
应该可以,希望对你有用
【讨论】:
我的解决方案是显示英文版 field_1 和翻译版 field_2:
使用面板:
通过向视图添加另一个显示来制作视图的两个副本。
在原始视图显示中,您从显示 field_2 中删除或排除,在第二个显示中,您删除 field_1。
在您的面板中,您将两个视图显示添加为面板窗格。
对于第一个视图显示窗格添加Visibility rule -> User:language -> English。
为第二个视图显示窗格添加Visibility rule -> User:language -> Your_second_language。
它看起来很复杂,但对于熟悉面板和视图的人来说,它真的很简单。 该解决方案不需要更改代码,也不需要了解主题。
【讨论】:
你可以把它按摩成与沉思一起工作。你可以这样做:
<?php
if(empty($node->field_foo[0]['view'])){ ?>
<?php print $node->field_bar[0]['view'] ?>
<?php } ?>
【讨论】: