Стажировка на реальных проектах:
наполнение портфолио, помощь с работой и заказами, пробные собеседования. Жми для подробностей→
124 of 182 menu
Бесплатный курс: Практика на Реальных Проектах и Работы в Портфолио! Начало 11 ноября. Жми для записи!

Таблица actions

Таблица actions является системной таблицей Drupal, которая хранит определения всех доступных действий. Действия - это произвольные задачи, которые могут быть настроены администратором и выполняться автоматически при наступлении определенных событий (через триггеры) или вручную (например, пакетное выполнение над несколькими объектами).

Поля

Поле Тип данных Описание
aid varchar(255) Машинное имя действия. Должно быть уникальным. Обычно формируется по шаблону module_action_name.
type varchar(32) Тип объекта, к которому применяется действие. Например: node, user, comment, system.
callback varchar(255) PHP-функция обратного вызова, которая выполняется при запуске действия. Может быть статическим методом класса или функцией.
parameters blob Сериализованный массив параметров, которые передаются функции обратного вызова. Параметры могут быть настроены администратором при создании продвинутого действия.
label varchar(255) Человекочитаемое название действия, которое отображается в интерфейсе администратора.

Как это работает

Модули Drupal могут объявлять действия, реализуя hook_action_info(). При очистке кеша или установке модуля эти определения регистрируются в таблице actions. Существует два типа действий: базовые (без настраиваемых параметров) и продвинутые (с параметрами, которые настраивает администратор).

Когда происходит событие, на которое настроен триггер (например, публикация материала), система проверяет, какое действие связано с этим событием, находит соответствующую запись в таблице actions и выполняет указанную callback-функцию, передавая ей контекст объекта и параметры из поля parameters.

Действия также широко используются в Views для пакетных операций и в системах правил (Rules) и рабочих процессах (Workflow). Данные в таблице в основном статичны и изменяются только при обновлении информации о действиях из кода модулей.

Пример SQL-запроса

Получить список всех действий для типа объекта node:

SELECT aid, label, callback FROM actions WHERE type = 'node' ORDER BY label;

Смотрите также

  • таблицу trigger_assignments,
    которая связывает действия с событиями
  • таблицу batch,
    которая управляет фоновыми пакетными операциями
  • таблицу queue,
    которая хранит задачи в очереди
  • таблицу system,
    которая хранит информацию о модулях и темах