我的客户要求我提供一个字段,该字段可以通过两种方式工作:
- 基于分类的自动完成过滤器。
- 如果站点访问者输入的内容不在分类法之列,则应在内容的正文上执行全文搜索,并显示适当的信息消息。
这样,如果用户输入类别名称,则将列出列出的手动选择的节点,如果还有其他内容,则至少将获得一些内容。
另外,这很容易。但是,如何在一个领域中结合这些行为呢?
我的客户要求我提供一个字段,该字段可以通过两种方式工作:
这样,如果用户输入类别名称,则将列出列出的手动选择的节点,如果还有其他内容,则至少将获得一些内容。
另外,这很容易。但是,如何在一个领域中结合这些行为呢?
Answers:
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键选择分类术语以及“ 节点:正文”
我在编写时没有进行测试,但是我觉得您至少可以将其用作起点。
使用“ 视图字段视图”模块,可以将视图嵌入到另一个视图中,还可以将上下文过滤器传递给嵌入式视图。
在您的情况下,我将只创建一个具有上下文过滤器的视图,该过滤器搜索给定的过滤器。我不确定在这一点上是否可以通过上下文过滤器进行搜索,但是我已经看到了诸如“搜索:术语”之类的一些选项。
话虽如此,如果您能够以任何方式实现这一第一步,其余的工作就相对简单了。
在原始视图中,您可以在“高级选项”部分下添加“无结果行为”,并添加“全局:视图(视图字段视图)”,然后选择您先前创建的视图,然后将公开过滤器的令牌作为对嵌入视图进行上下文过滤(您可以在列表中找到替换模式的标记)。
我已经完成了上面的讨论,并且可能在以下情况下可以解决“如何将公开的筛选器与搜索结合在一起?”一文。该实现将需要一些自定义编码。
form_id = 'sns_studio_form_filter'
)。在我们的自定义表单提交处理程序中,我们从自定义表单的字段中获取信息,并生成与步骤6中提到的类似的URL。最后,我们重定向到该URL。在提交处理程序中将像这样:
$form_state ['redirect'] = array(
$path,
array(
'query' => $params // $params is the url
)
);
drupal_redirect_form( $form_state );
因此,现在执行步骤7后,将根据您设置的过滤条件对所有视图块进行过滤。
希望能帮助到你。
还有另一种方法:您可以试用Concat Field模块。您基本上可以将字段添加到内容类型,然后可以使用该字段的筛选器作为搜索。
我同意,它与Finder非常相似,但是我仍然值得一提。