2010-07-26 77 views
0

我创建了一个使用暴露的过滤器和视图模块的搜索页面。用户可以从不同的值中进行选择,以获得具有特定结果的表(返回节点字段)。此页面位于mysite.com/search。问题是我想在我的主页上放置一个简化版的搜索表单(可以说关键字搜索框+一个或两个复选框)。这可以是一个块或一个视图。当用户按下搜索按钮时,我想将他重定向到搜索页面并显示结果。这里用户应该能够以一种普通的方式改进他的搜索。我想这可以通过HTTP GET参数并指向实际的搜索网站来实现。然而,我想知道,如果我可以在我的主页上使用视图,块等对表格进行硬编码,我希望这是有道理的。任何帮助将不胜感激。链接到实际搜索页面的搜索表单

+0

在启用搜索模块的情况下,它可能会与您创建的页面发生冲突。 – kiamlaluno 2010-07-27 15:18:32

+0

你为什么从标题中删除drupal?而你错了,它不会导致冲突。 – Vonder 2010-07-27 16:14:01

回答

2

编辑

最终的结果是,你想拥有一种形式带您到搜索结果页面和搜索结果页面本身上的其他高级形式。该解决方案通过为每个表单创建两个相同的视图并使用不同的过滤器来实现此目的

当有人使用简体形式时,他们会被带到example.com/search,当他们在该页面上并使用高级表单时,他们会被带到example.com/search/advanced。由于视图与相似的路径相同,因此最终用户不会知道其中的差别。

以下是如何做到这一点:

  1. 创建搜索结果的看法。不过,您可以使用默认显示设置搜索结果。对于过滤器,只能放入自动过滤器:不要放入您想让用户过滤的东西。
  2. 在该视图中创建一个新的页面显示。给它一条路径搜索。这将是用户在使用简化搜索表单时点击的结果页面。
  3. 在此页面显示中,覆盖过滤器。设置并公开您想要的简化搜索表单的过滤器。
  4. 覆盖暴露形式块在此显示了基本设置并将其设置为
  5. 在视图中创建新页面显示,并为其指定路径search/advanced。这将是用户在使用高级搜索表单时命中的结果页面。
  6. 覆盖此显示的过滤器,设置并展示高级搜索表单所需的过滤器。
  7. 覆盖暴露形式块在此显示了基本设置并将其设置为。现在

,你将有两个视图页面,搜索搜索/高级,和2个盖帽,简化的搜索表单和一个高级搜索表单。

转到块管理,并启用简化搜索块。使用路径特定的可见性设置来设置您希望简化搜索框出现的位置。

现在,启用高级搜索块。使用路径特定可见性设置的可见性设置为:

search 
search/* 

比方说,你想用一组不同的过滤器创建另一个简单的搜索框(我们称之为备用)。您也可以这样做:在视图中创建另一个页面显示,就像您在步骤2-4中所做的那样,但是不使用路径搜索,给它一个不同的路径:搜索/备用。您可以根据需要添加尽可能多的带有不同过滤器的简化表单,并且在您使用它们时,它们都将具有高级搜索表单和相同的结果。

+0

感谢您的回答,但我不太明白。我必须创建2个视图吗?还是2个街区?目前我有默认和页面显示。我应该创建块显示还是创建新视图?此外,当我从块显示中删除字段时,它们也从页面显示中删除(高级结果页面)在我的页面显示中,我显示了搜索表单和结果(通过字段),并且希望在我的主页上有迷你搜索框一些将用户带到高级(页面显示)结果的表单。 – Vonder 2010-07-28 20:34:37

+1

这正是我想要的。它只是一个真正的Drupal专家的解决方案!你应该写一篇关于这方面的文章,我想很多drupal用户都会很感激。非常感谢! – Vonder 2010-07-28 21:51:01