xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Собственное событие для Rules

Опубликовано в

Создание своего event-a для Rules состоит из двух шагов — реализация hook_rules_event_info() и вызов rules_invoke_event().

Пример события, которое возникает после смены имени пользователя:

/**
 * Implements hook_rules_event_info().
 */
function modulename_rules_event_info() {
  $items = array(
    'user_name_changed' => array(
      'label' => t('After changing user name'),
      'group' => t('User'),
      'variables' => array(
        'user' => array(
          'type' => 'user',
          'label' => t('user'),
        ),
      ),
    ),
  );
  return $items;
}
 
/**
 * Implements hook_entity_update().
 */
function modulename_entity_update($entity, $type) {
  if ($type == 'user' && $entity->name != $entity->original->name) {
    rules_invoke_event('user_name_changed', $entity);
  }
}

Код следует помещать в файл MODULENAME.rules.inc.

Собственный condition для Rules

Написанное актуально для Rules 2
Похожие записи

Комментарии RSS

Очень интересно. Возможно ли создать ивент на сабмит кастомной формы? Как передать аргументы?

По аналогии.

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании