Drupal 7: hook_entity_insert ($ entity, $ type)

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

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

В каком файле я помещаю образец кода для тестирования. Приведенный пример кода:

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();
} 
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
317
3

Ответы 3

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

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

Существует особая ловушка, которая «срабатывает» после того, как пользователь вставлен, и называется hook_user_insert.

Вам не нужно использовать 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 и проверьте информацию о пользователе в соответствии с бизнес-логикой.

Если вы хотите запустить функцию после регистрации пользователя, используйте 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
}

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

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