ertttert
Books-CMS.clan.su

Непосредственный вызов действия с помощью actions_do()

Модуль триггера — это лишь один из способов вызова действий. Может понадобиться написать отдельный модуль, который сам вызывает действия и подготавливает для них параметры. В таком случае для вызова действий рекомендуется функция actions_do().

actions_do($action_ids, $object = NULL, $context = NULL, $a1 = NULL, $a2 = NULL)

Рассмотрим каждый из ее параметров.

  • $action_ids. Действие или действия, которые нужно выполнить; задаются одним идентификатором действия или массивом таких идентификаторов.
  • $object. Объект, над которым будет выполняться действие: нода, пользователь, комментарий или просто никакой.
  • $context. Ассоциативный массив, содержащий информацию, которая может потребоваться для выполнения действия, в том числе настроенные параметры для расширенных действий.
  • $a1 и $a2. Необязательные дополнительные параметры; если они переданы в actions_do(), то они передаются и действию.
  • Ниже показано, как можно вызвать простое действие Beep с помощью функции actions_do():
    $object = NULL; // параметр $object обязателен, хотя в данном случае не используется
    actions_do('beep_beep_action', $object);
    
    А вот так вызывается расширенное действие Beep multiple times:
    $object = NULL;
    actions_do(2, $object);
    
    Но можно выполнить и следующий вызов с обходом извлечения хранимых параметров:
    $object = NULL;
    $context['beeps'] = 5;
    actions_do('beep_multiple_beep_action', $object, $context);
    
    На заметку! Искушенные разработчики на PHP могут удивиться: зачем вообще нужны действия? Разве нельзя просто вызвать функцию или реализовать хук? Зачем морочиться с сохранением параметров в контексте, а потом снова выбирать их вместо использования обычных параметров PHP? Ответ состоит в том, что написание действий с весьма обобщенной сигнатурой функции позволяет поручить повторное использование кода администратору сайта. Этот администратор может и не знать PHP, но ему не обязательно звонить разработчику PHP, скажем, для настройки отправления почтового сообщения при добавлении нового кода. Администратор сайта просто свяжет действие “Отправить почтовое сообщение” с триггером, который срабатывает при сохранении новой ноды, и ему не потребуется никого звать на помощь.
Всего комментариев: 0
Имя *:
Email *:
Код *:


Бесплатный конструктор сайтов - uCoz