Таблица workflow
Таблица workflow является центральной таблицей модуля Workflow в Drupal. Она хранит определения рабочих процессов, которые представляют собой наборы состояний и переходов между ними. Каждый тип контента (нода, комментарий, пользовательский объект) может быть связан с определенным рабочим процессом для управления его жизненным циклом.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
wid |
serial |
Уникальный идентификатор рабочего процесса. Первичный ключ таблицы. |
name |
varchar(255) |
Название рабочего процесса. Используется для идентификации в административном интерфейсе. |
tab_roles |
int |
Флаг, определяющий, показывать ли вкладку рабочего процесса на странице редактирования контента. 1 - показывать, 0 - скрыть.
|
options |
text |
Дополнительные настройки рабочего процесса в сериализованном формате. Могут включать настройки комментариев, уведомлений и другие параметры. |
Как это работает
Каждый рабочий процесс представляет собой конечный автомат состояний, через которые проходит контент. При создании рабочего процесса администратор определяет начальное состояние (например, "Черновик"), промежуточные состояния ("На проверке", "Одобрено") и конечное состояние ("Опубликовано").
Таблица workflow хранит только метаданные рабочих процессов. Конкретные состояния и переходы хранятся в связанных таблицах: workflow_states и workflow_transitions.
Рабочие процессы могут быть привязаны к типам контента через административный интерфейс или программно. Когда контент создается или редактируется, система проверяет, какой рабочий процесс связан с данным типом контента, и отображает доступные переходы между состояниями в зависимости от роли пользователя.
Поле options хранит сериализованный массив настроек, которые могут включать:
- Настройки комментариев при смене состояния
- Настройки уведомлений по email
- Правила автоматического перехода состояний
- Настройки отображения рабочего процесса в интерфейсе
Пример SQL-запроса
Получить список всех рабочих процессов с их настройками можно следующим запросом:
SELECT wid, name, tab_roles, options
FROM workflow
ORDER BY name;
Найти рабочий процесс по имени:
SELECT wid, name, tab_roles, options
FROM workflow
WHERE name = 'Editorial';
Смотрите также
-
таблицу
workflow_states,
которая хранит состояния рабочих процессов -
таблицу
workflow_transitions,
которая хранит переходы между состояниями -
таблицу
workflow_node_history,
которая хранит историю изменений состояний -
таблицу
workflow_scheduled_transition,
которая хранит запланированные переходы состояний