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

Posted

技术标签:

【中文标题】Drupal 6 中的自定义搜索表单:视图/面板还是自定义 sql?【英文标题】:Custom search form in Drupal 6: Views/Panels or custom sql? 【发布时间】:2011-01-27 16:43:11 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

    将自己连接到_search,这样您就可以使用 Drupal 的显示来查看结果。在此表单中,您可以根据需要为数据库创建查询或加载其他内容,请务必使用pager_query。 扩展已存在的搜索表单或构建您自己的搜索表单。我建议建立自己的。使用 Drupals search form 中已有的内容。这样,您就有了一种干净的方式来执行此操作。

实际上没有必要使用任何花哨的模块(这并不意味着您应该排除它们,但是搜索是如此重要,以至于它可以很好地处理基础知识)。

使用上面的方法,您将获得一个功能强大的本地搜索表单,并且可以使用全局分页选项。

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于Drupal 6 中的自定义搜索表单:视图/面板还是自定义 sql?的主要内容,如果未能解决你的问题,请参考以下文章

Drupal 视图中的自定义排序

自定义模板中的Drupal 7自定义表单

PHP 在Drupal 6中自定义块搜索表单

Drupal 7 Views 3:搜索特定字段的公开过滤器

在 Drupal 中搜索视图

使用选择性覆盖的Drupal视图的术语(而非分类)的自定义分类法页面