Drupal 7: hook_entity_insert ($ entity, $ type) - PullRequest
0 голосов
/ 03 сентября 2018

Я младший младший, поэтому я прошу прощения заранее, если это очень простой вопрос и задавался ли он миллион раз раньше.

Я пытаюсь запустить другую функцию, когда пользователь регистрируется. После некоторого поиска в Google я наткнулся на: hook_entity_insert ($ entity, $ type) from (https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_entity_insert/7.x)) сейчас, хотя есть примеры кода, он не говорит мне, куда поместить код, как получить отправленные данные и т.д ...

В каком файле я тестирую образец кода. Пример кода:

function hook_entity_insert($entity, $type) {

  // Insert the new entity into a fictional table of all entities.
  $info = entity_get_info($type);
  list($id) = entity_extract_ids($type, $entity);
  db_insert('example_entity')
    ->fields(array(
    'type' => $type,
    'id' => $id,
    'created' => REQUEST_TIME,
    'updated' => REQUEST_TIME,
  ))
    ->execute();
} 

Ответы [ 3 ]

0 голосов
/ 03 сентября 2018

Вам не нужно использовать hook_entity_insert. В вашем custom module используйте ниже hook когда user регистрируется.

   function yourModuleName_form_user_register_alter(&$form, &$form_state) {
    // Add your own function to the array of validation callbacks
    $form['#validate'][] = 'yourModuleName_user_register_validate';
   }

См Подключайтесь к регистрации в Drupal и проверяйте информацию пользователя по бизнес-логике

0 голосов
/ 09 октября 2018

Если вы хотите запустить функцию после регистрации пользователя, используйте hook_user_insert (или, если необходимо запускать каждый раз, когда пользователь изменяется, hook_user_presave).

В общем: крючки в drupal - это функции, которые соответствуют определенной схеме именования. В местах, где выполняется ловушка (т. Е. При регистрации пользователя), Drupal ищет все модули, которые содержат функцию, где имя функции состоит из имени модуля (машины), за которым следует имя ловушки. Чтобы подключить пользователя, вам потребуется реализовать модуль (или поместить свой код в уже реализованный модуль), см. Документацию здесь . Предположим, что ваш модуль называется «custom_module», затем вы реализуете такую ​​функцию:

function custom_module_user_insert(&$edit, $account, $category) {
  //Do what you wanted to do here
}

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

0 голосов
/ 03 сентября 2018

Сначала вы должны понять систему хуков в Drupal. Для Drupal 7 эта страница - хорошее начало. Это дает вам быстрый обзор и понимание концепции.

Понимание системы хуков для модулей Drupal

Существует определенный хук, который «срабатывает» после вставки пользователя, с именем hook_user_insert

...