hook_action_info

Хочешь помочь с переводом? Это очень просто и быстро. Лишь зарегистрируйся, и можешь тут же начать переводить.

developer/hooks/core.php, строка 65

Версии
6
hook_action_info()

Информирует триггеры Друпала о новых действиях.

Любой модуль Друпала может определить любое количество действий (action). Модуль trigger является примером модуля, который использует эти действия. Действие состоит из двух или трех частей:

  1. описания действия (возвращаемое эти хуком);
  2. функции, которая выполняет действие (по соглашению эту функцию называют имя_модуля + '_' + описание_действия + '_action');
  3. необязательного описания формы настроек для этого действия (форму настроек описывает функция с именем полное_имя_действия + '_form').

Функции, которая выполняет действие при вызове передается 2 параметра: объект того же типа, как и значение элемента 'type' из массива hook_action_info, и массив-контекст, описывающий, собственно, контекст, в котором в данный момент запускается действие. К примеру, модуль trigger устанавливает в этом массиве значения с ключами 'hook' и 'op' (то есть для действия, вызываемого при обработке события 'insert' в хуке 'nodeapi' контекст может выглядеть как array('hook' => 'nodeapi', 'op' => 'insert')).

Возвращаемое значение

  • Ассоциативный массив описаний всех действий, реализованных в модуле. Ключи этого массива — имена функций, реализующих действие, значения — описания действий. Описание действия в свою очередь является ассоциативным массивом с такими парами ключ-значение:
    • 'type': (обязательно) определяет, какой тип объектов будет передан действию. Допустимые значения: 'node', 'user', 'comment' и 'system' или любой пользовательский тип. Например, для модуля nodequeue, реализующего последовательность нод, тип можно установить равным 'nodequeue', если действие должно работать с последовательностями нод.
    • 'description': (обязательно) Описание действия для пользователей.
    • 'configurable': (обязательно) Булево значение. Если оно равно FALSE, действию не требуется дополнительная настройка. Если TRUE — настройка требуется, в этом случае необходимо определить конструктор формы настройки. Конструктор формы настройки — это функция с именем, состоящим из имени действия и суффикса '_form' (т.е., для действия 'node_assign_owner_action' это будет 'node_assign_owner_action_form'). Функции передается параметр $context; при необходимости форму можно дополнить стандартными функциями _submit и _validate.
    • 'hooks': (обязательно) Массив всех операций, к которым применимо данное дейстиве. Ключами массива являются имена хуков. Модуль trigger использует этот параметр для того, чтобы отфильтровать непоходящие действия в административном интерфейсе. Определяя в модуле действие, поддерживающее все возможные хуки, можно установить 'hooks' => array('any' => TRUE). Часто используются хуки 'user', 'nodeapi', 'comment' и 'taxonomy'. Можно использовать имя любого хука, определенного с помощью функции hook_hook_info().
    • 'behavior': (необязательно) Массив, описывающий «поведение» действия. Ядро Друпала поддерживает только одно поведение — 'changes_node_property'. Если для действия указано такое поведение, это означает, что действие изменяет свойства ноды; в этом случае по окончанию действия нода будет автоматически сохранена.

Связанные темы

Код

<?php
function hook_action_info() {
  return array(
    'comment_unpublish_action' => array(
      'description' => t('Unpublish comment'),
      'type' => 'comment',
      'configurable' => FALSE,
      'hooks' => array(
        'comment' => array('insert', 'update'),
      )
    ),
    'comment_unpublish_by_keyword_action' => array(
      'description' => t('Unpublish comment containing keyword(s)'),
      'type' => 'comment',
      'configurable' => TRUE,
      'hooks' => array(
        'comment' => array('insert', 'update'),
      )
    )
  );
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вход в систему