Разработка: workflows/tags

Материал из DOF
Перейти к: навигация, поиск
Плагин
Название tags
Тип workflows


workflow/tags - Статусы тегов

Плагин рабочих процессов предназначенный для смены статусов тегов. Работает в паре с модулем storage/tags. Позволяет организовать смену статуса тега в зависимости от текущего статуса.

Права плагина

  • changestatus - право на смену статуса объектов

Возможные статусы:

  • Не просчитанный (new) - новый тег, для которого еще не производился просчет связей.
  • Активный (active) - тег, который был успешно просчитан.
  • Идет просчет (notavailable) - тег, для которого в данный момент производится просчет связей.
  • Ошибка при просчете (failed) - тег, при просчете ссылок которого произошла ошибка.
  • Удален (deleted) - удаленный тег.

Метастатусы

  • Активный: new, active, notavailable, failed
  • Актуальный: new, active, notavailable, failed
  • Реальный: new, active, notavailable, failed
  • Мусорный: deleted

Маршруты статусов

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

Не просчитанный

Возможные переходы ИЗ этого статуса:

  • Не просчитанный
  • Активный
  • Идет просчет
  • Ошибка при просчете
  • Удален

Активный

Возможные переходы ИЗ этого статуса:

  • Активный
  • Идет просчет
  • Ошибка при просчете
  • Удален

Идет просчет

Возможные переходы ИЗ этого статуса:

  • Активный
  • Идет просчет
  • Ошибка при просчете
  • Удален

Ошибка при просчете

Возможные переходы ИЗ этого статуса:

  • Активный
  • Идет просчет
  • Ошибка при просчете
  • Удален

Удален

Это конечный статус.

API

get_list()

Получить список всех возможных статусов для проводки

Аргументы:

  • (нет)

Возвращаемые значения:

  • Массив, со списком всех возможных статусов в формате "Обозначение" => "Название статуса"

get_name()

Получить название статуса по его обозначению в Базе Данных

Аргументы:

  • (string) $status - обозначение статуса латинскими буквами

Возвращаемые значения:

  • (string|bool) - имя этого статуса, либо false, если он не обнаружен в списке допустимых

get_available()

Получить список статусов, в которые может перейти объект.

Аргументы:

  • $id - id объекта в таблице

Возвращаемые значения:

  • (array|bool) - массив возможных состояний в формате ('Обозначение' => 'Название статуса') или false в случае когда запись не найдена. В случае, когда переход из этого статуса невозможен - возвращается пустой массив.

change()

Сменить статус на указанный.

Аргументы:

  • (int) $id - id объекта в Базе Данных
  • (string) $status - обозначение статуса латинскими буквами
  • (array) $opt - Массив, где содержатся дополнительные параметры для смены статуса. По умолчанию null.

Возвращаемые значения:

  • (bool) true - если статус удалось изменить, или false в случае ошибки

При обращении к функции change() выполняются дополнительные действия, указанные выше, в разделе "Маршруты статусов". При каждом изменении статуса данные записываются в таблицу statushistory.

init()

Запускается при вставке в Базу Данных новой записи. Автоматически назначает добавленной записи статус "Не просчитанный" (new).

Аргументы:

  • $id - id только что созданной записи в таблице

Возвращаемые значения:

  • (bool) true если статус успешно назначен или false в случае ошибки

Перехватываемые события

Таблица событий, которые перехватывает этот плагин
Тип плагина Код плагина Код события Пояснение
storage tags insert Событие добавления записи, произведем инициализацию объекта - добавим начальный статус new
storage tags soft_delete Событие мягкого удаления записи, произведем смену статуса объекта на deleted