Drupal 6中的自定义搜索表单:视图/面板或自定义sql?

时间:2011-01-27 16:43:12

标签: drupal drupal-views drupal-panels

我在Drupal 6中使用CCK,我需要在Drupal中构建一个搜索表单,其中8-10个字段用作过滤器;当用户提交表单时,我需要对数据库应用过滤器进行查询并在表格上显示结果。 我知道如何通过动态构建sql-where条件(加入node和content_type_xyz表)以编程方式执行此操作,但我有兴趣学习如何以“Drupal方式”进行操作;我想我将不得不使用视图和面板,但我不知道它们是否可以在这样的情况下轻松实现,我已经尝试构建一些示例视图,但我认为手动创建代码会更快。

任何人都可以帮助我吗? 谢谢和问候。

2 个答案:

答案 0 :(得分:1)

如果您想要自定义搜索,您需要IMO做两件事:

  1. 将自己连接到_search,以便您可以使用Drupal的显示结果。在此表单中,您可以根据需要为数据库创建查询或加载其他内容,只需确保使用pager_query
  2. 扩展已存在的搜索表单或构建自己的搜索表单。我建议你自己建造。使用Drupals search form中已有的内容。通过这种方式,您可以清楚地了解如何执行此操作。
  3. 实际上没有必要使用任何花哨的模块(这并不意味着你应该排除它们,但是搜索是非常重要的,因为它可以很好地处理基础知识)。

    使用上述内容,您将获得具有所有功能的本机搜索表单,并可以使用全局分页选项。

答案 1 :(得分:0)

如果使用视图执行此操作,则仅限于使用SQL可以执行的过滤。 Views是一个SQL构建器,不包含任何“正确的”搜索功能。也就是说,听起来会像你想做的那样;如果您在视图下创建过滤器,然后点击“公开此过滤器”,您将突然看到允许用户输入要按过滤器显示的内容的字段。