Как выполнить пользовательский код при регистрации пользователя

drupal.stackexchange https://drupal.stackexchange.com/questions/15090

  •  16-10-2019
  •  | 
  •  

Вопрос

Мне нужно делать запрос отдыха каждый раз, когда подписывает новый пользователь.

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

Какой лучший/чистый способ сделать это?

Это было полезно?

Решение

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

В вашем модуле вы можете реализовать hook_user_presave() быть вызванным до сохранения учетной записи пользователя. Он будет вызван как для создания, так и для обновления, поэтому вам нужно будет охранять свой код с условием для обнаружения нового пользователя. После остального вызова есть несколько вариантов хранения возвращенных данных. Самым простым является использование атрибута данных учетной записи пользователя. Это простой массив PHP, который будет сериализован в столбцах базы данных. Это не очень хорошо выполнять и не очень гибко (вы можете запросить хранимые данные), но это легко.

function MODULE_user_presave(&$edit, $account, $category) {
  // Accoding to user_save's documentation, this is a new user if
  // $account->is_new is set to TRUE or if $account->uid is not set
  if ($category == 'account' && (!empty($account->is_new) || !isset($account->uid)))) {
    $edit['data']['MODULE'] = MODULE_get_data_from_rest($account);
  }
}

Другие советы

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

  • Включить модуль Триггеры
  • Перейти к Конфигурация >> Действия и создать действие, доступное в раскрывающемся списке
  • Перейти к Структура >> Триггеры, нажми на Пользователь вкладка и назначьте действие, которое вы создали некоторое время назад Триггер: после создания новой учетной записи пользователя

А Правила или же Рабочий процесс Модули могут быть тем, что вы ищете.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с drupal.stackexchange
scroll top