如何将视图公开过滤器与搜索结合在一起?


18

我的客户要求我提供一个字段,该字段可以通过两种方式工作:

  • 基于分类的自动完成过滤器。
  • 如果站点访问者输入的内容不在分类法之列,则应在内容的正文上执行全文搜索,并显示适当的信息消息。

这样,如果用户输入类别名称,则将列出列出的手动选择的节点,如果还有其他内容,则至少将获得一些内容。

另外,这很容易。但是,如何在一个领域中结合这些行为呢?


1
另外很容易,您使用哪个模块可以根据分类法自动完成?对我来说,诀窍将是一个小的javascript代码,它将检查是否没有结果更改“提交”按钮动作,因此它将重定向到/ search / yourkeywordsearch
sel_space 2013年

Answers:


17

Finder模块将完全满足您的要求,您可以选择分类术语以及节点标题,正文,字段,.. etc等来执行搜索。

有很多方法可以组合查找程序的功能,以获得所需的搜索表。还有许多挂钩和主题功能,可以完全自定义finder的输出。

它用于以下目的:

As a search tool to find a group of nodes or users.
As a way to navigate to a specific node or user page that matches criteria.
As an alternative to exposed filters for a Views module display.

请参见下面的屏幕截图,在“ 查找器”字段中,您可以选择分类术语以及节点主体,以在“自动完成的公开字段”中执行搜索,即使您可以执行多个以逗号分隔的关键字搜索。阅读Finder文档以获取更多信息。

在此处输入图片说明

添加元素后,您可以从列表中选择查找器字段,按住

Ctrl键选择分类术语以及“ 节点:正文”


它有点旧,需要共同维护者,但看起来满足了我的所有需求。需要进行测试,但到目前为止,这似乎是我的用例的完美答案。
Mołot

似乎有效。我需要对其进行微调,但是它可以完成工作。
Mołot

3

我在编写时没有进行测试,但是我觉得您至少可以将其用作起点。

使用“ 视图字段视图”模块,可以将视图嵌入到另一个视图中,还可以将上下文过滤器传递给嵌入式视图。

在您的情况下,我将只创建一个具有上下文过滤器的视图,该过滤器搜索给定的过滤器。我不确定在这一点上是否可以通过上下文过滤器进行搜索,但是我已经看到了诸如“搜索:术语”之类的一些选项。

话虽如此,如果您能够以任何方式实现这一第一步,其余的工作就相对简单了。

在原始视图中,您可以在“高级选项”部分下添加“无结果行为”,并添加“全局:视图(视图字段视图)”,然后选择您先前创建的视图,然后将公开过滤器的令牌作为对嵌入视图进行上下文过滤(您可以在列表中找到替换模式的标记)。


1
有趣的主意,但我无法使它起作用。经过大量的配置,然后Bala发布了现成的模块,我不由自主。
Mołot

是的,我对Finder模块一无所知。我想我也会在我的项目中使用它。如果Finder做到了您的期望,请让我们通过评论告知我们,我们将非常高兴。
ЕлинЙ.

3

我已经完成了上面的讨论,并且可能在以下情况下可以解决“如何将公开的筛选器与搜索结合在一起?”一文。该实现将需要一些自定义编码。

  1. 考虑网址http://www.seedandspark.com/studio
  2. 在这里,您的左侧有一个搜索表。这是一个自定义表单(form_id = 'sns_studio_form_filter')。
  3. 在内容区域上,我们大约有7-8个视图块以及所有生成动态信息的信息(仅针对匿名用户3个块)
  4. 现在,我们公开了每个视图块都启用的过滤器。
  5. 我们将那些暴露的滤镜隐藏起来
  6. 使用视图公开过滤器时,我们会保留url结构的注释
  7. 在我们的自定义表单提交处理程序中,我们从自定义表单的字段中获取信息,并生成与步骤6中提到的类似的URL。最后,我们重定向到该URL。在提交处理程序中将像这样:

    $form_state ['redirect'] = array(
      $path, 
      array(
        'query' => $params // $params is the url
      )
    );
    drupal_redirect_form( $form_state );

因此,现在执行步骤7后,将根据您设置的过滤条件对所有视图块进行过滤。

希望能帮助到你。


3

还有另一种方法:您可以试用Concat Field模块。您基本上可以将字段添加到内容类型,然后可以使用该字段的筛选器作为搜索。

我同意,它与Finder非常相似,但是我仍然值得一提。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.