如何在Drupal中处理参数化查询?

时间:2010-06-05 12:58:16

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

我们有一个客户正在使用Lotus Notes / Domino作为其内容管理系统和Web服务器。出于多种原因,我们建议他们落实他们的Notes / Domino实现并转换到更现代的平台 - 例如Drupal。

客户端有几个Web应用程序,非常适合Drupal。但是,我不确定在Drupal中实现其中一个Web应用程序的最佳方法。我遇到了知识障碍,想知道是否有人能填补空白。

场合

客户端有一个Lotus Domino应用程序,它充当前端,用于查询大型DB2数据存储并通过Web将结果集(通常以表格形式)返回给用户。 Web应用程序提供对大约100个预定义查询的访问 - 其中50个是公开的,其中50个是安全的。大多数查询接受一组用户选择的参数作为输入。查询的输出通常以列表(表)格式返回给用户。有限数量的结果集允许通过HTML表向下钻取详细记录。

查询参数通常涉及数据库查询本身。例如,单个查询可以将公司分部列表拉入下拉列表中。一旦选择了一个部门,就会填充与该部门的部门的第二次下拉 - 但可能只有符合某些特殊标准的部门 - 例如那些在特定时间范围内遭受损失的部门。大多数查询都有2-4个参数,平均值可能为3。

该应用程序不涉及数据输入。 Web应用程序都没有修改任何后端数据。所有访问都完全基于查询数据和查看结果。

查询相对不经常更改,并且当前系统已经存在了大约10年。在给定年份中可能会有10-20个查询添加,修改或其他更改。客户只是希望更改演示平台,但绝对不想重新进行100次数据库查询。

项目实施后,客户希望其员工接管并管理未来的变更。客户的工作人员没有Drupal或PHP的背景,但有些人愿意在必要时学习。

你会如何将其转换为Drupal?我的主要知识空白与我们如何管理查询参数和访问查询本身有关。以下是一些具体问题,但可以随时了解与此实施相关的任何问题。

  1. 我们是否需要手工构建100个表单 - 每个表单包含给定查询的参数?如果是这样,我们将如何做到这一点?
  2. 构建/配置这些表单大约需要多长时间?
  3. 有没有比手动构建100个表单更好的方法? (我理解使用CCK将数据输入到自定义内容类型中,但由于我们没有添加任何节点,因此我对这可能如何工作有点困惑。)
  4. 内部员工是否可以学习创建这些查询参数表单 - 即使他们今天不熟悉Drupal?他们是否需要进行任何PHP编程?
  5. 我们如何从表单中获取查询参数并对DB2执行查询?这需要一个自定义模块吗?如果是这样,每个查询需要一个模块总计还是一个模块? (注意:显然有一个可用于Drupal的DB2驱动程序。请参阅http://groups.drupal.org/node/5511。)
  6. 注意:我不是在寻找Drupal以外的CMS推荐,因为Drupal非常符合客户的所有其他要求,我希望能帮助他们在单一平台上实现标准化。

    您可以提供的任何帮助都会有所帮助。提前感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

查看Data模块 - 它可能会帮助您找到解决方案。

您可能遇到的最大问题是通过Drupal连接到DB2服务器,因为没有补丁(正如您所发现的),DBA层不支持它。

答案 1 :(得分:0)

有几件事情浮现在脑海中。 您可以使用Table Wizardviews公开任何自定义表格。视图基本上为您提供了编写自定义SQL查询的UI。将表格暴露给视图后,您可以使用过滤器来“参数化”查询。此外,视图支持许多显示选项,包括表和寻呼机。

如果您确实需要为高级查询编写自己的表单,请查看Drupal Form API,这会使创建自定义php表单成为一块蛋糕。

观点相当容易学习,根据我的经验,大多数客户都很快就会把它拿起来。这实际上取决于查询的复杂性。

表单API应该很容易让开发人员学习,但需要基本的PHP知识和编写Drupal代码。

答案 2 :(得分:0)

Lotus是否提供了一个Web服务来查询它?如果是这样,您可以使用自定义表单(在您自己的模块中)轻松完成此操作,并使用服务模块查询数据。