Где лучше всего разместить запрос к БД в drupal? - PullRequest
1 голос
/ 17 июня 2009

У меня есть несколько форм, данные которых необходимо записать в основную базу данных в своих собственных таблицах. Просто простые формы для сбора имен и адресов электронной почты, которые являются частью обычных страниц в drupal. Я подозреваю, что правильным способом сделать это было бы написать модуль, в котором бы был запрос в функции, но это всего лишь предположение. Я никогда раньше не писал модуль и не знаю, как форма будет обрабатываться таким образом.

Это также предположение, что выполнять запрос БД внутри узла было бы небезопасно?

Единственная другая идея, которая у меня есть, - это использовать php-файл на сервере для обработки формы с написанным там запросом db, но, насколько я могу судить, это выглядит совсем не друпально.

Как ??

Ответы [ 3 ]

2 голосов
/ 17 июня 2009

http://drupal.org/node/508 - информация Drupal о разработке модуля

Вы захотите использовать функцию "db_query ()"

Вы можете использовать встроенные методы Drupal для создания форм, хотя это сохранит данные для вас. Взгляните на руководство для разработчиков модулей, и вы сможете понять его. Разработка модулей звучит пугающе, но это не так суетно, как кажется, когда вы действительно знаете, что происходит с Drupal (следовательно, прочитайте руководство).

0 голосов
/ 17 июня 2009

Я бы второй модуль Webform. Создайте действительно простую веб-форму с именем и адресом электронной почты (результаты могут быть отправлены по электронной почте или автоматически сохранены в БД и могут быть легко экспортированы в несколько форматов). Затем проверьте модуль Webform Block , чтобы поместить эту веб-форму в блок и разместить ее там, где вам нужно, на вашем сайте. Никакого пользовательского кодирования не требуется!

Вот выдержка из страницы проекта блока Webform:

Позволяет встраивать узел веб-формы в блок, который можно расположить в любой области блока (если разрешено пространство тем).

Обрабатывает перенаправление на текущую страницу при ошибках проверки.

Хорошим способом для этого является добавление контактной формы для сайтов, встроенной на ваших страницах, например в нижний колонтитул или боковую панель.

На одной странице может отображаться несколько веб-форм. Содержимое блока - это просто узел, поэтому работу с темой можно выполнить в файле node-webform.tpl.php как обычно.

0 голосов
/ 17 июня 2009

Вы проверили, что уже там? Webform может решить ваши потребности без какого-либо специального кода.

Кроме того, я настоятельно рекомендую книгу Pro Drupal Development, если вы хотите узнать больше о Drupal и разработке базовых модулей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...