Использование действий в Drupal

В статье "Текстовые форматы и редакторы в Drupal" было рассмотрено, как создавать действия в системе управления сайтом Drupal. Это касается сложных действий, так как простые действия доступны по умолчанию, пользователь может только управлять их переводами.

Способы вызова действий

Для использования уже созданных действий в Drupal доступны следующие варианты:
  • использование модулей;
  • самостоятельное написание кода.
В старых версиях Drupal для использования действий применялся модуль Trigger. Позже ему на смену пришёл модуль Rules. В некоторых версиях Drupal модуль присутствует по умолчанию, для других его нужно скачать отдельно. Проследить за актуальными версиями можно на официальном сайте платформы. Использование действий при модерации статей в Drupal Использовать действия (Actions) можно в связке и с другими модулями, например, Workflow, используемого для ведения документооборота. По умолчанию среди действий есть «Опубликовать материал», оно используется в Workflow, когда нужно поменять статус материала, чтобы он стал доступен всем пользователям. Также действие «Опубликовать материал» используется в системе каждый раз, когда администратор, модератор или пользователей публикую статью.

Самостоятельное написание кода для вызова действий

Создавать Actions можно не только через панель управления, но и через написание PHP кода. Каждое действие является функцией с определённым именем. Попробуем написать функцию с названием "beep_action_info()". Единственное что будет делать эта функция - это проигрывать звуковой сигнал при вызове.
function beep_action_info() {
   return array(
      'beep_beep_action' => array(
         'type' => 'system',
         'label' => t('Beep'),
         'configurable' => FALSE,
         'triggers' => array('any'),
      ),
   );
}
Эта функция является реализацией hook_action_info. Она возвращает массив данных с несколькими ключами. Первый ключ "beep_beep_action" - это название функции, которая будет вызываться на определённое действие. По этому ключу располагается массив с параметрами, которые будут использоваться:
  • type – тип создаваемого действия, это может быть system (система), node (нода), user (пользователь), comment (комментарий) и taxonomy (таксономия), при неочевидности выбора следует выбирать system;
  • label – имя действия, которое будет использоваться, если для вызова действия на сайте будет использоваться модуль. Модуль "Beep" является системным. Но можно указать название своего модуля ;
  • configurable – наличие у действия принимаемых параметров;
  • triggers – на какие операции будет вызываться функция. Значение "any" позволяет работать с любой операцией. То есть что бы мы ни сделали на сайта, будем слышать звуковой сигнал.
Теперь нужно написать саму функцию "beep_beep_action"
function beep_beep_action() {
   beep_beep(); // звуковой сигнал гудка
}
Реализация действия становится возможной благодаря функции hook_action_info(). Осталось зайти в настройки триггеров и установить действие, чтобы оно срабатывало в нужный момент.
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?