Как я могу обрабатывать параметризованные запросы в Drupal? - PullRequest
1 голос
/ 05 июня 2010

У нас есть клиент, который в настоящее время использует Lotus Notes / Domino в качестве своей системы управления контентом и веб-сервера. По многим причинам мы рекомендуем прекратить реализацию Notes / Domino и перейти на более современную платформу, такую ​​как Drupal.

У клиента есть несколько веб-приложений, которые естественным образом подходят для Drupal. Однако я не уверен в том, как лучше всего реализовать одно из веб-приложений в Drupal. Я сталкиваюсь с барьером в знаниях и спрашиваю себя, может ли кто-нибудь из вас заполнить пробелы.

Положение

У клиента есть приложение Lotus Domino, которое служит внешним интерфейсом для запроса большого хранилища данных DB2 и возврата набора результатов (обычно в виде таблицы) пользователю через Интернет. Веб-приложение предоставляет доступ примерно к 100 предварительно определенным запросам, 50 из которых являются общедоступными, а 50 - защищенными. Большинство запросов принимают некоторый набор выбранных пользователем параметров в качестве входных данных. Вывод запросов обычно возвращается пользователям в виде списка (таблицы). Ограниченное количество наборов результатов позволяет детализировать таблицу HTML до подробных записей.

Параметры запроса часто включают сами запросы к базе данных. Например, один запрос может вывести список подразделений компании в раскрывающийся список. После выбора подразделения заполняется второй выпадающий список с отделами этого отдела, но, возможно, только с отделами, которые соответствуют некоторым особым критериям - например, те, которые понесли убытки в течение определенного периода времени. Большинство запросов имеют 2-4 параметра, среднее значение которых, вероятно, составляет 3.

Приложение не требует ввода данных. Веб-приложение никогда не изменяет никакие внутренние данные. Весь доступ основан исключительно на запросе данных и просмотре результатов.

Запросы меняются относительно редко, и действующая система действует уже около 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.)

Примечание: я не ищу рекомендаций CMS, кроме Drupal, так как Drupal хорошо соответствует всем другим требованиям клиента, и я надеюсь помочь им стандартизироваться на одной платформе. Любая помощь, которую вы можете оказать, будет полезна. Заранее благодарю за помощь!

Ответы [ 3 ]

1 голос
/ 02 ноября 2010

Посмотрите на модуль Data - он может помочь вам продвинуться далеко вперед к решению.

Самая большая проблема, с которой вы, вероятно, столкнетесь, - это подключение к серверу DB2 через Drupal, поскольку уровень DBA не поддерживает его без исправлений (как вы обнаружили).

0 голосов
/ 05 июня 2010

Предоставляет ли Lotus веб-сервис для запроса? Если это так, вы можете легко сделать это, используя пользовательскую форму (в своем собственном модуле) и использовать модуль Services для запроса данных.

0 голосов
/ 05 июня 2010

Несколько вещей приходят на ум. Вы можете использовать Table Wizard , чтобы предоставить любые пользовательские таблицы для просмотров . Представления в основном дают вам интерфейс для написания пользовательских SQL-запросов. Как только ваши таблицы открыты для просмотра, вы можете использовать фильтры для «параметризации» запроса. Кроме того, view поддерживает множество параметров отображения, включая таблицы и пейджеры.

Если вам нужно написать свои собственные формы для сложных запросов, взгляните на Drupal Form API , который делает создание пользовательских php-форм настоящим пирогом.

Представления довольно просты для изучения, и, по моему опыту, большинство клиентов быстро их получают. Это действительно зависит от сложности запроса.

Form API должен быть прост в освоении разработчиком, но требует базовых знаний php и написания кода на Drupal.

...