Компонент мастера


Компонент мастера имеет код sf.wizard. Ключевым параметром является WIZARD_CONFIG_FILE, который указывает месторасположение конфигурационного файла.

В компоненте мастера устанавливаются служебные константы:

  • SF_WIZARD_DIR – относительная директория мастера
  • SF_WIZARD_PATH – абсолютный путь к папке мастера
Нужно учитывать, что в компоненте мастера совмещаются два стандарта оформления ключей массива. Согласно стандартам 1С-Битрикс ключи массива $arResult должны иметь верхний регистр. Однако в SIMAI Framework везде используется хранение ключей массива в нижнем регистре (чтобы не создавать путаницу). Поэтому в конфигурационном файле данные храниться с ключами в нижнем регистре. При загрузке их в массив $arResult ключи переводятся в верхний регистр. Но все данные в массиве $arResult[“DATA”] хранятся с ключами в нижнем регистре. Необходимо учитывать данные обстоятельства при создании действий.

Данные константы могут использоваться в действиях мастера для получения данных из вложенных папок или для использования временных папок и файлов.

Используя конфигурационный файл компонент формирует массив данных со следующей структурой:

  • $arResult["CONFIG"] – Здесь хранится весь массив данных из конфигурационного файла.
  • $arResult["WIZARD"] – Параметры мастера
  • $arResult["STAGE"] – Параметры текущего этапа
    • $arResult["STAGE"]["STATUS"] – Статус текущего этапа. Может принимать значения NEW (новый этап), WORK (в работе), SUCCESS (успешно завершен)
  • $arResult["ACTION"] – Параметры для текущего действия
    • $arResult["ACTION"]["DATA"] – Массив текущих результатов работы действия (для передачи данных при выполнении действия в пошаговом режиме)
    • $arResult["ACTION"]["INPUT"] – Массив входных данных текущего действия
    • $arResult["ACTION"]["OUTPUT"] – Массив выходных данных текущего действия. После завершения работы действия, данные передаются в массив $arResult["DATA"]
  • $arResult["DATA"] – Массив выходных данных всех завершенных действий. В данном массиве каждое действие может получать исходные данные, используя код (data_input_code) и записывать в него используя код (data_output_code). Все ключи в данном массиве должны иметь нижний регистр. Для этого перед сохранением данных в данный массив производится принудительное приведение ключей массива к нижнему регистру.

Сформированный массив сохранятся в хранилище используя класс SIMAI\Main\Configuration\Property. После этого запускается шаблон компонента мастера.

Шаблон компонента мастера

Шаблон компонента мастера выполняет следующие функции:

  • Формирует универсальную верстку (макет) мастера. Используя параметры фона и модификаторы из конфигурационного файла можно менять внешний вид мастера.
  • Вызывает компонент этапа мастера (sf.wizard.stage). Для запуска действия в пошаговом режиме.
  • Обеспечивает навигацию по мастеру с помощью кнопок Вперед и Назад. Кнопки деактивируются на время выполнения действия. Также действие через параметр prev_disable=Y может блокировать кнопку Назад.

Для работы аякс скрипта компонента этапа мастера дополнительно передается параметр ID аякс мастера "PARENT_AJAX_ID" => $arParams["AJAX_ID"],