2013-02-06 45 views
3

我有一个Drupal视图,用于过滤分类标记字段。我希望能够通过在“Exposed Filters”表单上显示一个复选框来打开/关闭过滤器。 为了说明这个问题,比如说词汇是水果,而术语是苹果,梨,橘子和柠檬。我可以通过创建一个说明水果是(橙子,柠檬)之一的过滤器来选择柑橘类水果的内容。现在我想公开过滤器,让我选择是否应用我的柑橘类水果过滤器。如何将复选框添加到暴露的筛选器表单中,选中时将应用筛选器,并在未选中时忽略筛选器?将Drupal Views过滤器作为开启/关闭复选框公开,以启用/禁用过滤器

回答

1

你会认为Views会开箱即用。它没有。使用更好的曝光过滤器模块 - >http://drupal.org/project/better_exposed_filters

它甚至具有嵌套复选框/单选按钮的分类与层次结构。

下面是一些具体到你想要做什么文档...

“复选框/单选按钮:此选项可用于该有选择数量有限的任何过滤勾选强制单选项。使用单选按钮,取消选中它的复选框

嵌套的复选框/单选按钮:当这个选项显示,经常复选框选项显示任何过滤器,它实际上只使用了具有层次分类过滤器如果你正在使用。一个选择类型设置为Dropdown并显示下拉列表中显示层次结构的taxomomy过滤器,这些过滤器将呈现为嵌套的无序列表。勾选Force single选项以使用nes特德单选按钮“

+0

你能解释一下如何使用Better Exposed Filters来做我想做的事吗?我公开了过滤器,选择了我想要的术语,并将限制列表设置为选定项目。然后,在BEF设置中,我选择了复选框/单选按钮。我没有看到Force单选项。现在在我公开的过滤器表格中,我将我选择的术语无线电看作单选按钮。但那不是我想要的。我想要的是显示一个复选框,当选中时应用/启用过滤器,以及未选中时忽略/禁用过滤器。我不认为更好的曝光过滤器允许我这样做。 – Mir

3

假设您正在使用BEF并且您已经在BEF选项中为您的暴露过滤器选中了”复选框/单选按钮“选项,设置复选框而不是单选按钮的方法是检查”在配置对话框中为您的暴露过滤器在视图中允许多个选择“。

+0

我想你应该详细说明一下,如果你想避免这个答案被标记为“这不是答案”,并最终关闭。 – davidkonrad

+1

答案确实很简短,但解决方案本身非常简单。我尽力扩大答案。感谢您的建议。 – alouette

3

这是可能的:

  • 的相应字段中添加过滤器(任期参照水果 你的例子)。

在配置过滤条件对话框:

  • 设置“过滤类型暴露”到“分组过滤器”。
  • 选中“允许多选”
  • 将'Widget Type'设置为无线电。
  • 您可能想要清空'标签'。
  • 删除下表中除了一个以外的所有过滤器组。

在这剩下的过滤器设置:

  • 填写标签( '柑橘类水果' 在你的例子)。
  • 将'操作员'设置为'是其中之一'。
  • 根据价值选择你想过滤的值(在你的例子中的橘子和柠檬)。

这给你1个复选框,标记为'柑橘类水果'。所以UI就在那里。不幸的是,问题[#2224601]阻止它的工作,因为它导致无效的查询,但工作修补程序可用。

1

我想这里没有答案回答这个问题。 “我想要的是显示一个复选框,当选中此选项时,将应用/启用过滤器,而未选中的复选框会忽略/禁用过滤器。我认为Better Exposed过滤器不允许我这样做。”

你不需要“更好的暴露过滤器”来做到这一点。 您需要使用分组过滤器。

  • 点击公开此过滤器,以游客
  • 过滤类型暴露:分组过滤器
  • 检查“可选”
  • 检查“窗口小部件类型:收音机”
  • 检查“允许多选”
  • 如果需要,删除/清空“标签”
  • 在底部,您将有几行可以根据需要设置每一行。如果你想只有一个,删除所有,但一个
  • 单击应用

这个答案是非常晚。但我希望这有助于某人。

+0

我完全按照这些说明操作,但它仍然显示单个无线电盒,而不是复选框。你在D7中测试过了吗? – Sam

相关问题