【问题标题】:Keep Views Filters from stacking防止视图过滤器堆叠
【发布时间】:2023-03-12 12:45:01
【问题描述】:

在 D7 站点上,我有一个显示在视图中的项目列表。 该视图由几个不同的分类词汇过滤,每个都显示为一个公开的过滤器

例如:

  • 文化
  • 中等
  • 原产地
  • 艺术家

我的问题是,当您选择文化的下拉菜单并选择标签(例如也门人)时,视图会过滤掉带有也门人标签的项目。 但是,如果我随后单击“中”的下拉菜单并选择一个标签,例如 Metalwork,则视图将被过滤以仅显示带有 Yemenite 和 Metalwork 标记的项目。

这太具体了,但我找不到一种方法让过滤器独立运行,当我选择“中”时,文化过滤器被重置,只显示金属制品。过滤器组和 And/Or 说明符只会创建长链的限定符,而不是重置和重新过滤。

我确信这可以使用 jQuery 来完成,但我的日程安排很紧,而且我使用 jQuery 覆盖选择列表以及处理创建的跨浏览器问题的经验非常消极。我还可以创建一个精细的标签层次结构并将整个内容显示为单个过滤器,但这种混乱确实不可行,它在移动设备上也是有问题的。

如果有人有任何想法或建议,我将不胜感激。

【问题讨论】:

    标签: sorting drupal drupal-7 drupal-views


    【解决方案1】:

    在视图中,您可以更改公开过滤器的行为。在公开的过滤器列表中,有一个带有“添加”/“AND/OR,重新排列”的选项卡。使用“AND/OR”选项,您可以更改包含行为并将其设置为“或”。

    【讨论】:

    • 对,但 And/Or 只加减。我需要重置之前选择的标签。或者给你留下一个大的、不起眼的结果集,如果幸运的话,And 将返回 2。进行新选择时,我需要重置每个暴露的过滤器。另外,我知道您可以在暴露的过滤器上放置一个重置按钮,但这不是一个很好的 UI 体验来继续重置和等待。
    • 啊,我明白了。您可以做的是在公开的表单(hook_form_FORM_ID_alter())上进行表单更改并添加提交处理程序。在 form_alter 中,您可以更改选定的值,在提交处理程序中,您可以重新提交值。
    猜你喜欢
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    相关资源
    最近更新 更多