搜索表单链接到实际搜索页面

时间:2010-07-26 21:43:15

标签: drupal drupal-6 drupal-views drupal-modules

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

1 个答案:

答案 0 :(得分:2)

修改

最终结果是,您希望让一个表单进入搜索结果页面,并在搜索结果页面上显示另一个高级表单。此解决方案通过为每个表单创建两个具有不同过滤器的相同视图来实现此目的

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

以下是如何实现这一目标:

  1. 为搜索结果创建一个视图。使用默认显示可以根据需要设置搜索结果。对于过滤器,只需放入自动过滤器:不要放入您希望用户能够过滤的内容。
  2. 在该视图中创建新页面显示。给它一个搜索的路径。这将是用户在使用简化搜索表单时点击的结果页面。
  3. 在此页面显示中,覆盖过滤器。为简化搜索表单设置并公开所需的过滤器。
  4. 在此显示的基本设置中覆盖在块中显示表单,并将其设置为
  5. 在视图中创建新页面显示,并为其指定 search / advanced 的路径。这将是用户在使用高级搜索表单时点击的结果页面。
  6. 覆盖此显示的过滤器,设置并公开高级搜索表单所需的过滤器。
  7. 在此显示的基本设置中覆盖在块中显示表单,并将其设置为
  8. 现在,您将拥有两个视图页面,搜索搜索/高级,以及两个块,一个简化的搜索表单和一个高级搜索表单。

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

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

    search
    search/*
    

    假设你想用另一组过滤器创建另一个简化的搜索块(让我们称之为替代)。您也可以这样做:在步骤2-4中创建另一个页面显示,但不是使用路径搜索,而是给它一个不同的路径: search / alternate 。您可以根据需要添加尽可能多的具有不同过滤器的简化表单,并且当您使用它们时,它们都将具有高级搜索表单和相同的结果。