НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
168 of 182 menu

Таблица workflow_transitions

Таблица workflow_transitions является частью модуля Workflow и предназначена для хранения определений всех возможных переходов между состояниями workflow. Каждая запись в этой таблице представляет собой разрешенный переход из одного состояния (from_sid) в другое (to_sid) в рамках конкретного workflow.

Поля

Поле Тип данных Описание
tid int Уникальный идентификатор перехода. Первичный ключ, автоинкремент.
wid int Идентификатор workflow, к которому принадлежит этот переход. Внешний ключ для таблицы workflows.
from_sid int Идентификатор исходного состояния (State ID), из которого осуществляется переход. Внешний ключ для таблицы workflow_states.
to_sid int Идентификатор целевого состояния (State ID), в которое осуществляется переход. Внешний ключ для таблицы workflow_states.

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

Модуль Workflow позволяет создавать сложные процессы согласования и публикации контента. Каждый workflow состоит из набора состояний (например, "Черновик", "На проверке", "Опубликовано", "Архив") и переходов между ними.

Таблица workflow_transitions определяет, какие переходы между состояниями разрешены. Например, из состояния "Черновик" можно перейти в "На проверке", но нельзя сразу в "Опубликовано". Каждый переход связан с конкретным workflow через поле wid.

Когда пользователь пытается изменить состояние контента (например, отправить материал на модерацию), система проверяет наличие соответствующей записи в таблице workflow_transitions. Если переход разрешен, операция выполняется, в противном случае пользователь получает ошибку.

Переходы могут иметь дополнительные настройки, такие как права доступа (какие роли могут выполнять этот переход), метки для отображения и другие параметры, которые хранятся в связанных таблицах.

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

Получить все разрешенные переходы для конкретного workflow можно следующим запросом:

SELECT wt.tid, wf.name as workflow_name, fs.state as from_state, ts.state as to_state FROM workflow_transitions wt INNER JOIN workflows wf ON wt.wid = wf.wid INNER JOIN workflow_states fs ON wt.from_sid = fs.sid INNER JOIN workflow_states ts ON wt.to_sid = ts.sid WHERE wf.name = 'editorial';

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

  • таблицу workflows,
    которая хранит основные данные workflow
  • таблицу workflow_states,
    которая содержит определения состояний workflow
  • таблицу workflow_node_history,
    которая хранит историю переходов для нод
  • таблицу workflow_scheduled_transition,
    которая содержит запланированные переходы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить