2010-06-05 54 views
1

我们有一位客户正在使用Lotus Notes/Domino作为其内容管理系统和Web服务器。出于很多原因,我们推荐他们放弃他们的Notes/Domino实现并转换到更现代的平台 - 比如Drupal。如何处理Drupal中的参数化查询?

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

现状

客户端具有一个Lotus Domino应用程序用作前端,用于查询大DB2的数据存储并通过网络返回结果集(通常以表格的形式)提供给用户。该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。)

注:我不是在寻找比Drupal的其他如Drupal的非常适合所有的客户的其他需求CMS的建议,我希望帮助他们在单一平台上实现标准化。

您可以提供的任何帮助将有所帮助。预先感谢您的帮助!

回答

1

查看Data模块 - 它可能能够帮助您实现解决方案。

您可能遇到的最大问题是通过Drupal连接到DB2服务器,因为它是DBA层在没有修补程序的情况下不支持它(如您发现的那样)。

0

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

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

视图相当容易学习,并且根据我的经验,大多数客户很快就能看到它。这实际上取决于查询的复杂性。

表单API应该很容易让开发人员拿起,但确实需要php的基本知识和编写Drupal代码。

0

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

+0

您可以通过Web服务查询Domino,是的。但这听起来像是原始海报的客户正在摆脱Domino并在不同的平台上进行标准化,所以这可能无济于事。 – Ben 2010-06-11 12:06:17

+0

是的,但是当OP使用CCK等确定一个坚实的结构时,可以查询并将所有数据转换到Drupal,然后依赖Views进行查询。 – Kevin 2010-06-11 12:58:44