Хранилища отметок
Движок workflow в Pimcore предоставляет несколько различных способов хранения текущих состояний (places) субъекта. Они представлены следующими типами marking store.
state_table (по умолчанию)
Это хранилище отметок по умолчанию. Информация о состоянии хранится в таблице element_workflow_state. Это лучший вариант для Assets и Documents. Для Data Objects другие варианты marking store могут быть более подходящими, потому что данные будут храниться непосредственно в модели объекта данных в виде атрибутов.
Пример конфигурации
marking_store:
type: state_table
single_state
Хранит состояние в атрибуте субъекта (вызывается setter-метод). Может использоваться, если модель не может находиться в более чем одном состоянии одновременно. Это стандартное single_state marking store, предоставляемое фреймворком Symfony. Для Data Objects подходящим полем Pimcore будет select (или, возможно, input) для хранения состояния при использовании single_state.
Пример конфигурации
marking_store:
type: single_state
arguments:
- workflowState
multiple_state
Аналогично single_state, но может использоваться, если субъект может находиться в более чем одном состоянии одновременно. Примечание: это нельзя использовать в сочетании с multiselect-полями объектов — в таком случае используйте data_object_multiple_state.
Пример конфигурации
marking_store:
type: multiple_state
arguments:
- workflowState
data_object_multiple_state
Может использоваться для хранения нескольких состояний в multiselect-поле объекта данных.
Пример конфигурации
marking_store:
type: data_object_multiple_state
arguments:
- workflowState
data_object_splitted_state (только для объектов данных)
Работает похоже на single_state и data_object_multiple_state, но позволяет хранить разные состояния в разных атрибутах Data Object. Поэтому нужно настроить отображение (mapping) между местами (places) и именами атрибутов Data Object.
Пример конфигурации
В примере ниже места, относящиеся к тексту объекта данных, сохраняются в атрибуте workflowStateText, тогда как места, связанные с изображениями, сохраняются в workflowStateImages:
marking_store:
type: data_object_splitted_state
arguments:
- text_open: workflowStateText
text_finished: workflowStateText
text_released: workflowStateText
images_open: workflowStateImages
images_finished: workflowStateImages
images_released: workflowStateImages
Провайдер опций (для single_state, data_object_multiple_state и data_object_splitted_state)
Если для хранения состояний используются атрибуты Data Object (select или multiselect), можно использовать специальный options provider, который автоматически предоставит корректные опции select. Достаточно в качестве options provider указать @pimcore.workflow.place-options-provider и задать имя workflow как options provider data в используемом атрибуте Data Object.

Этот провайдер опций добавляет места в удобном, читаемом формате:
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.