【发布时间】:2011-01-27 23:23:05
【问题描述】:
在我看来,我宁愿根据另一个字段的值隐藏某些字段。我正在寻找在代码中执行此操作的方法,或者以其他方式但不启用 php 过滤器。
【问题讨论】:
标签: drupal drupal-views
在我看来,我宁愿根据另一个字段的值隐藏某些字段。我正在寻找在代码中执行此操作的方法,或者以其他方式但不启用 php 过滤器。
【问题讨论】:
标签: drupal drupal-views
我不知道您使用的是哪个版本的视图。我不太记得在 V2 中是否可以使用输出重写,但我想是的。在 V3 中,它就在那里,等待您使用。
输出重写接受任何 HTML 代码,您可以使用查询返回的内容进行替换。我不确定你是否可以在那里使用 PHP,也许你可以,但我从未真正尝试过。无论如何,假设您有field_foo 和field_bar,它们都是一些选择选项或复选框或其他多项选择,在数据库中有键值对(如 1|foo、2|bar 等) .
在这种情况下,您应该有四个可用的选项:
[field_foo_value]
[field_foo_value_raw]
[field_bar_value]
[field_bar_value_raw]
(它们的命名可能会有所不同,我不太记得确切的命名约定)。您可以像这样重写“bar”字段输出:
<span class="visibility-[field_foo_value_raw]">[field_bar_value]</span>
然后,假设“foo”的可能键是 1 和 2,您可以编写一些 CSS:
span.visibility-1 { display: inline; }
span.visibility-2 { display: none; }
如果允许使用 PHP,应该会更容易,但我感觉你只能使用 HTML。无论如何,我希望这会有所帮助。
【讨论】:
使用hook_form_alter 或hook_form_FORM_ID_alter 您可以更改views_exposed_form 表单。从那里,it should be possible 使用 CTools' Dependent 来设置字段之间的可见性依赖关系。 Views 暴露的表单布局部分在主题层中处理(请参阅views-exposed-form.tpl.php),因此可能需要做更多的工作来隐藏/显示标签。
【讨论】:
这个模块接缝就像它会做你需要的。我已经使用过它,它易于设置且使用快速。
【讨论】: