Webform является одним из самых популярных модулей в Drupal, который позволяет создавать сложные формы для сбора информации от пользователей. Однако, по умолчанию Webform не предоставляет возможности преобразовать данные формы в ноду, что может быть полезным, если вы хотите сохранить эти данные для дальнейшего использования или анализа в Drupal. С помощью модуля «Webform Node» вы сможете создавать ноды на основе данных, полученных из формы Webform.

Установка и настройка модуля Webform Node

Для начала вам потребуется установить и включить модуль «Webform Node», а затем перейти на страницу настройки этого модуля. На этой странице вы сможете выбрать типы нод, которые вы хотите создавать на основе данных Webform.


// Установка модуля Drupal "Webform Node"
composer require 'drupal/webform_node:^5.0'
drush en webform_node -y

Создание ноды из полей Webform

После настройки модуля «Webform Node» вы сможете создавать ноды из полей Webform. Для этого вам потребуется следующий программный код, который можно разместить в файле, связанном с вашим кастомным модулем в Drupal:


/**
 * Implements hook_webform_submission_insert().
 */
function custom_module_webform_submission_insert($webform_submission) {
  // Получение данных из формы Webform
  $data = $webform_submission->getData();

  // Создание новой ноды
  $node = \Drupal\node\Entity\Node::create([
    'type' => 'article', // Замените "article" на желаемый тип ноды
    'title' => $data['title'], // Имя поля Webform, содержащее заголовок
    'field_body' => [
      'value' => $data['body'], // Имя поля Webform, содержащее содержимое
      'format' => 'basic_html', // Формат содержимого
    ],
  ]);

  // Сохранение новой ноды
  $node->save();
}

Приведенный выше код выполняет следующие действия:

  • Получает данные из формы Webform с помощью метода getData().
  • Создает новую ноду с указанными типом и полями.
  • Сохраняет новую ноду с помощью метода save().

Часто задаваемые вопросы

1. Как настроить Webform?

Для настройки Webform вам потребуется зайти на страницу «Управление Webform» (Administration > Structure > Webforms), где вы сможете создать новую форму и настроить ее поля, права доступа и другие параметры.

2. Как связать Webform с модулем «Webform Node»?

После установки и включения модуля «Webform Node» вам потребуется открыть настройки данного модуля (Administration > Configuration > Content authoring > Webform Node), где вы сможете выбрать нужные типы нод и настроить привязку полей Webform к полям ноды.

3. Как добавить дополнительные поля в создаваемую ноду?

Чтобы добавить дополнительные поля в создаваемую ноду, вам нужно изменить программный код, представленный выше. Вы можете использовать методы Entity API для создания и настройки полей. Подробные инструкции по добавлению полей доступны в документации Drupal.