Как делать php-операции в drupal - PullRequest
0 голосов
/ 31 октября 2011

Я абсолютный новичок в друпале.

Я добавил контактную форму (используя Webform module).

Теперь я хочу сохранить данные, введенные в форму. Но я потерялся. Я искал через Интернет, нашел db_query() используется для запроса базы данных.

Но я не знаю, где написать код php. Пожалуйста, помогите мне, или если вы знаете какую-либо ссылку, пожалуйста, дайте мне.

Ответы [ 3 ]

1 голос
/ 01 ноября 2011

Таблицы, которые вас больше всего интересуют: webform, webform_submissions, webform_submitted_data и webform_component. Посмотрите на эти таблицы, и станет совершенно очевидно, как они связаны друг с другом.

Вы захотите взглянуть на API базы данных Drupal 7 , чтобы узнать, как использовать систему запросов, но вот пример для начала:

/* Get a list of all submissions from webform for the node with ID (`nid`) of 1 */
$nid = 1;
$submissions = db_select('webform_submissions', 'ws')
  ->fields('ws')
  ->condition('nid', $nid)
  ->execute();

/* If you want to use db_query and a plain old SQL statement instead you'd do it like this: 
$submissions = db_query('SELECT * FROM webform_submissions WHERE nid = :nid', array('nid' => $nid)); */

/* Loop through the submissions and load up the submitted data for each */
$submission_data = array();
foreach ($submissions as $submission) {
  $query = db_select('webform_submitted_data', 'wsa')
    ->fields('wc', array('name'))
    ->fields('wsa', array('data'))
    ->condition('sid', $submission->sid);

  /* Join in the component table to get the element label */
  $query->join('webform_component', 'wc', 'wc.nid = wsa.nid AND wc.sid = wsa.cid');

  $submission_data[] = $query->execute()->fetchAllKeyed();

}

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

Надеюсь, это поможет

0 голосов
/ 27 марта 2012

Webform имеет поддержку Views, поэтому вам, вероятно, не нужно писать запросы к базе данных для генерации нужного вам отчета.

0 голосов
/ 15 ноября 2011

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

Если вы действительно новичок в Drupal и Webforms, я просто подумал, что укажу на это.В пользовательском интерфейсе имеется множество вкладок, которые можно легко пропустить.

...