Универсальный мастер
Глоссарий
Мастер, универсальный мастер, wizard – набор инструментов для быстрого создания пошаговых мастеров, выполняющих действия на основе готовых скриптов.
Этап, stage – шаг мастера на котором выполняется определенное действие. На одном шаге действие может выполнятся многократно.
Действие, action – готовый скрипт который выполняет определенное действие.
Конфигурационный файл, файл конфигурации – php скрипт содержащий в себе массив с параметрами запуска мастера.
Хранилище данных – механизм позволяющий сохранять и получать данные мастера, обеспечивающий возможность передачи данных между этапами.
Описание работы мастера
Мастер представляет собой набор инструментов, который обеспечивает последовательный запуск готовых действий. Каждое действие может выполнятся циклически для снижения нагрузки и до достижения поставленного результата.
Мастер состоит из 4-х ключевых элементов:
-
Конфигурационный файл – это массив, который содержит информацию о мастере и выполняемых действиях. Массив передается в компонент мастера при вызове его на странице.
-
Действия (actions) – это готовые скрипты, выполняющие определенное действие. Действия имеют параметры, необходимые для их выполнения, а также входящий и исходящий массив данных.
-
Компонент мастера (simai::sf.wizard) – данный компонент обеспечивает пошаговый запуск этапов и оформление мастера.
-
Компонент этапа мастера (simai::sf.wizard.stage) – служит для обеспечения пошагового выполнения действия.
Схема работы мастера
Визуально схема работы мастера представлена на рисунке ниже.
Мастер запускается через вызов компонента simai::sf.wizard. Для работы мастера требуется указать расположение конфигурационного файла мастера.
Компонент simai::sf.wizard использует данные конфигурационного файла для формирования массива данных мастера и сохраняет информацию в хранилище.
После этого запускается шаблон мастера. В шаблоне мастера формируется макет мастера и вызывается компонент simai::sf.wizard.stage.
Компонент simai::sf.wizard.stage используется для пошагового выполнения одного действия (для снижения нагрузки при выполнении ресурсоёмких операций). Для работы компонента требуется указать код мастера. Используя данный код компонент загружает данные из хранилища и передает их в шаблон.
В шаблоне компонента simai::sf.wizard.stage расположен ява-скрипт который обеспечивает пошаговое выполнение одного действия.
Конфигурация мастера
Конфигурация работы мастера представляет собой файл с массивом данных, имеющих следующую структуру:
return array(
"description" => array(
"name" => "Демонстрационный мастер",
"code" => "wizard_demo",
"stage_renew" => "Y",
"logo" => "/image/wizard_bg.jpg",
"copyright" => "© SIMAI Studio, 2018",
"background" => array(
"color" => "#f5f8fc",
"image" => "/image/wizard_bg.jpg",
"position" => "bottom",
"repeat" => "no-repeat",
"size" => "cover",
"attachment" => "fixed",
),
"color" => array(
"primary" => "#E53935",
"secondary" => "#2196F3",
),
"modifier" => array(
"page_body" => "theme-light bg-theme-50 p-md-5 py-4 py-lg-6",
"wizard_wrap" => "r-2 w-80 wr-md-7 mx-auto",
"wizard_area" => "p-4 bg-white",
"wizard_nav" => "p-4 bg-white",
"wizard_copyright" => "p-2 t-center t--1 c-white",
),
),
"action" => array(
0 => array(
"name" => "Название шага №1",
"code" => "test1",
"data_input_code" => "t1_input",
"data_output_code" => "t1_output",
"prev_disable" => "Y",
"condition" => array(
"property" => array(
array(
"array" => "site_config",
"key" => "sf4",
"value" => "Y",
"operator" => "=="
),
),
),
"parameter" => array(
"test" => "Тестовая строка",
),
),
),
);
?>
Массив содержит два ключевых подраздела:
- description – служит для описания мастера. Обязательным для работы является параметр code. Данный параметр служит идентификатором массива всех данных мастера.
-
action – данный раздел содержит шаги мастера. Шаги располагаются в порядке их выполнения. Ключ шага определяет какое действие будет выполняться. Для работы действия указываются какие массивы будут использоваться для ввода данных (
data_input_code) и вывода данных (data_output_code). Действия хранятся в папке /simai/wizard/action. Код действия совпадает с названием папки. Так для действия с кодом test папка со скриптом действия будет /simai/wizard/action/test
Массив описания мастера
Данный массив содержит параметры по запуску и работе мастера, а также параметры оформления.
"description" => array(
"name" => "Демонстрационный мастер",
"code" => "test_wizard",
"stage_renew" => "Y",
"logo" => "/image/logo.png",
"copyright" => "© SIMAI Studio, 2018",
"background" => array(
"color" => "#f5f8fc",
"image" => "/image/bg.jpg",
"position" => "bottom",
"repeat" => "no-repeat",
"size" => "cover",
"attachment" => "fixed",
),
"color" => array(
"primary" => "#E53935",
"secondary" => "#2196F3",
),
"modifier" => array(
"page_body" => "theme-light bg-theme-50 p-md-5 py-4 py-lg-6",
"wizard_wrap" => "r-2 w-80 wr-md-7 mx-auto",
"wizard_area" => "p-4 bg-white",
"wizard_nav" => "p-4 bg-white",
"wizard_copyright" => "p-2 t-center t--1 c-white",
),
),
Описание параметров мастера:
- name – Заголовок мастера. Тип строка. Может отображается при работе мастера
- code – Код мастера. Используется в качестве идентификатора хранилища мастера. Обязательный параметр.
- stage_renew – Параметр возобновления работы мастера при перезагрузке страницы. Если данный равен “Y”, то при перезагрузке страницы мастер продолжит работу с того этапа на котором он остановился.
- logo – Логотип. Тип строка, указывает путь к файлу логотипа. Может отображаться при работе мастера.
- background – Фон мастера. Массив дополнительных параметров. Описывает оформление фона мастера:
- color – Цвет фона в HEX (например "#f5f8fc).
- image – Путь к файлу фонаЦвет фона в HEX (например "#f5f8fc)
- position – Положение изображения. Может принимать следующие значения: [left | center | right | <percent> | <value>] || [top | center | bottom | <percent> | <value>] | inherit
- repeat – Повтор фонового изображения. Может принимать следующие значения: repeat-x | repeat-y | [repeat | space | round | no-repeat]
- size – Размер фонового изображения. Может принимать следующие значения: [ <value> | <percent> | auto ] | cover | contain
- attachment – Фиксация фонового изображения. Может принимать следующие значения: fixed | scroll | inherit
- color – Цвета темы мастера. Массив дополнительных параметров. Описывает оформление цветовой схемы мастера:
- primary – Основной цвет темы мастера в HEX (например "#f5f8fc).
- secondary – Дополнительный цвет темы мастера в HEX.
- modifier – Модификаторы областей мастера. Массив дополнительных параметров. Описывает оформление мастера:
- page_body – Модификаторы для тега body.
- wizard_wrap – Модификаторы обертки мастера.
- wizard_area – Модификаторы области данных мастера.
- wizard_nav – Модификаторы области навигации мастера.
- wizard_copyright – Модификаторы области копирайта мастера.
Вызов мастера
Мастер вызывается на любой странице сайта. Рекомендуется для каждого мастера создавать отдельную папку в которой будут размещаться служебные папки и файлы мастера (конфигурационный файл, изображения и т.д).
На странице мастера необходимо предварительно вызвать пролог сайта.
< ?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
$APPLICATION->IncludeComponent(
"simai:sf.wizard",
".default",
array(
"COMPONENT_TEMPLATE" => ".default",
"WIZARD_DIR" => “/wizard”,
"WIZARD_CONFIG_FILE" => "/wizard/.wizard.config.php",
"AJAX_TIME_INTERVAL" => 1,
"AJAX_MODE" => "Y",
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_STYLE" => "N",
"AJAX_OPTION_HISTORY" => "N",
"AJAX_OPTION_ADDITIONAL" => "",
"COMPOSITE_FRAME_MODE" => "N",
"COMPOSITE_FRAME_TYPE" => "AUTO",
"CACHE_TYPE" => "N",
),
false
)? >
Файл с конфигурацией (параметр WIZARD_CONFIG_FILE) настоятельно рекомендуется сохранять в той же папке где происходит вызов мастера. Это связано с тем, что в файле конфигурации будет проще оперировать путями внутри папки с мастером.
Обратите внимание на следующее:
- Желательно отключать кеширование компонента через параметр "CACHE_TYPE" => "N",
- Для идентификации конфигурационного файла мастера, его название желательно оставлять стандартным: .wizard.config.php
- Параметр AJAX_TIME_INTERVAL устанавливает время выполнения шагов действия в секундах. Если значение не установлено, то будет установлено значение 5 секунд. Если значение превышает 20 секунд, будет установлено значение 20 секунд.
- Параметр WIZARD_DIR - это директория мастера, которая задается относительно корня сайта.
- Параметр WIZARD_CONFIG_FILE - это конфигурационный файл мастера, который задается относительно корня сайта.
Компонент мастера
Компонент мастера имеет код sf.wizard. Ключевым параметром является WIZARD_CONFIG_FILE, который указывает месторасположение конфигурационного файла.
В компоненте мастера устанавливаются служебные константы:
- SF_WIZARD_DIR – относительная директория мастера
- SF_WIZARD_PATH – абсолютный путь к папке мастера
$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"],
Компонент этапа мастера
Компонент этапа мастера служит механизмом, обеспечивающим пошаговое выполнение какого-либо действия с ограничением по времени каждого шага.
Компонент этапа мастера имеет код sf.wizard.stage. Ключевым параметром является WIZARD_CODE, который содержит код массива хранилища данных мастера.
Используя данный код компонент загружает массив всех данных мастера из хранилища и передает в шаблон.
Шаблон компонента этапа мастера
Шаблон компонента этапа мастера выполняет следующие функции:
- Запускает файл действия.
- Если статус действия в работе (WORK), то циклически запускает файл действия с указанным промежутком времени
- Для простых (не пошаговых) действий включает отображение кнопок навигации. Для пошаговых скриптов включение кнопок навигации требуется производить в файле действия.
Действие
Описание действия
Действие представляет собой папку с файлами которые обеспечивают выполнение заданного функционала. Действия находятся в папке /simai/wizard/action/. Каждая папка содержит файл скрипта действия и файл описания Структура папки действия:
test.action/ // Папка действия test.action
├── lang/
│ └── ru
│ └── .description.php // Языковые файлы описания действия
│ └── action.php // Языковые действия
│
├── .description.php // Файл описания действия
└── action.php // Файл действия
Действие вызывается в файле конфигурации и может иметь следующие параметры:
- name – Название (заголовок действия). Отображается при работе данного шага
- code – Код действия. Обязательный параметр. Должен совпадать с именем папки действия.
- data_input_code – код подмассива
$arResult["DATA"]из которого берутся данные для данного действия:$arResult["DATA"][ data_input_code] - data_output_code – код подмассива
$arResult["DATA"]куда сохраняются результаты работы действия данного действия:$arResult["DATA"][ data_output_code] - prev_disable – если установить значение “Y”, то блокирует кнопку возврата назад
- autocomplete – если установить значение “Y”, то будет автоматически запущено следующее действие без ожидания пользователя.
- parameter – массив параметров запуска действия
Список действий
Ниже приведен список действий:
- data.add.config – загружает данные в хранилище из конфигурации действия
- data.add.property – получение параметров от пользователя, используя универсальные свойства
- data.merge – объединяет параметры из одного массива в другой
- data.export.file – сохраняет данных из хранилища в файл
- data.import.file – загружает данные из файла в хранилище
- file.add – добавляет к одному файлу содержимого другого файла.
- file.copy – копирует файл(ы) и/или директори(ю)(и) из A в Б
- file.encode.win1251 – кодирует файлы и директории в кодировку Win 1251
- file.unzip – разархивирует архив в Б
- file.zip – архивирует файл(ы) и/или директори(ю)(и) из A в Б
- iblock.export.archive – упаковка инфоблок(а)(ов) в папку Б
- iblock.import.archive – распаковка инфоблок(а)(ов) из папки А
- iblocktype.export.data – экспортирует типы инфоблоков в хранилище
- iblocktype.import.data – импортирует типы инфоблоков из хранилища
- option.export.data – настройки из хранилища сохраняются в сайт
- option.import.data – сохраняет параметры из настроек сайта в хранилище
- site.export.data – экспортирует настройки сайта в хранилище
- site.import.data – импортирует настройки сайта из хранилища
- usergroup.export.data – экспортирует группы пользователей в хранилище
- usergroup.import.data – импортирует группы пользователей их хранилища
- install.check – проверка сайта на соответствие нужным требованиям ( при установке решения)
- iblock.translate – переводит инфоблоки на указанный язык
Условие запуска шага
Условие позволяет пропускать шаг, в случае не выполнения заданного условия
condition.
Пример вызова:
array(
"name" => "Получаем данные из конфигурации и записываем в хранилище",
"code" => "data.add.config",
"data_input_code" => "site_config",
"data_output_code" => "data_from_config",
"prev_disable" => "Y",
"autocomplete" => "Y",
"condition" => array(
"property" => array(
array(
"array" => "site_config",
"key" => "sf4",
"value" => "Y",
"operator" => "=="
),
),
),
"parameter" => array(
"test" => array(
"param1" => "тестовое значение 1",
"param2" => "тестовое значение 2",
),
),
),
array(
"name" => "Получаем данные из конфигурации и записываем в хранилище",
"code" => "data.add.config",
"data_input_code" => "site_config",
"data_output_code" => "data_from_config",
"prev_disable" => "Y",
"autocomplete" => "Y",
"condition" => array(
"type" => "or",//and
"property" => array(
array(
"array" => "site_config",
"key" => "sf4",
"value" => "Y",
"operator" => "=="
),
array(
"array" => "site_config",
"key" => "replace",
"value" => "Y",
"operator" => "!="
),
),
),
"parameter" => array(
"test" => array(
"param1" => "тестовое значение 1",
"param2" => "тестовое значение 2",
),
),
),
Где:
- array – Название массива, в котором хранится значение
- key – код
- value – значение с которым сравниваем
- operator – сравнение, доступны: "==", ">", "<", "!=", ">=", "<="
- type – для нескольких условий, если ставится or то условие считается выполненным если одно из условий верно, если and то когда все условия верны
iblock.export.archive
Данное действие упаковывает инфоблоки в архивы.
Пример вызова действия:
array(
"name" => "Запаковка инфоблоков",
"code" => "iblock.export.archive",
"prev_disable" => "Y",
"autocomplete" => "Y",
"data_output_code" => "iblock_pack",
"parameter" => array(
"iblock" => array("sf-ru-activity", "sf-ru-news"),
"destination" => "/test/iblock_pack",
),
),
Где:
- name – текстовое описание данного действия (отображается в мастере)
- code – код действия
- data_output_code – код массива в хранилище в котором сохранится получаемый массив данных
$arResult["DATA"][ data_output_code] - prev_disable – если установить значение “Y”, то блокирует кнопку возврата назад
- autocomplete – если установить значение “Y”, то будет автоматически запущено следующее действие без ожидания пользователя.
- parameter – массив данных который показывает какие инфоблоки и куда упаковывать.
- iblock – перечень инфоблоков для упаковки. Указывается в виде кодов инфоблоков.
- destination – путь назначения для распаковки файла (локальный путь к папке).
site.import.data
Действие создает сайты на основе данных хранилища.
Пример вызова действия:
array(
"name" => "Создаём сайты из данных хранилища",
"code" => "site.import.data",
"data_input_code" => "site_array",
"prev_disable" => "Y",
"autocomplete" => "Y",
"parameter" => array(),
),
Где:
- name – текстовое описание данного действия (отображается в мастере)
- code – код действия
- data_output_code – код массива в хранилище в котором сохранится получаемый массив данных
$arResult["DATA"][ data_output_code] - prev_disable – если установить значение “Y”, то блокирует кнопку возврата назад
- autocomplete – если установить значение “Y”, то будет автоматически запущено следующее действие без ожидания пользователя.
site.export.data
Действие получает данные о сайтах и сохраняет их в хранилище.
Пример вызова действия:
array(
"name" => "Получаем данные настроек сайтов и записываем в хранилище",
"code" => "site.export.data",
"data_output_code" => "site_array",
"prev_disable" => "Y",
"autocomplete" => "Y",
"parameter" => array(),
),
Где:
- name – текстовое описание данного действия (отображается в мастере)
- code – код действия
- data_output_code – код массива в хранилище в котором сохранится получаемый массив данных
$arResult["DATA"][ data_output_code] - prev_disable – если установить значение “Y”, то блокирует кнопку возврата назад
- autocomplete – если установить значение “Y”, то будет автоматически запущено следующее действие без ожидания пользователя.
option.import.data
Данное действие берет массив из хранилища и записывает их в настройки сайта используя метод SetOptionString.
Пример вызова действия:
array(
"name" => "Записываем настройки в сайт",
"code" => "option.import.data",
"data_input_code" => "bitrix_option",
"prev_disable" => "Y",
"autocomplete" => "Y",
),
Где:
- name – текстовое описание данного действия (отображается в мастере)
- code – код действия
- data_output_code – код массива в хранилище в котором сохранится получаемый массив данных
$arResult["DATA"][ data_output_code] - prev_disable – если установить значение “Y”, то блокирует кнопку возврата назад
- autocomplete – если установить значение “Y”, то будет автоматически запущено следующее действие без ожидания пользователя.
Для выполнения данного действия массив параметров должны быть правильно подготовлен:
[modul1] => Array(
[param1] => тестовое значение 1,
[param2] => тестовое значение 2
),
[modul2] => Array(
[param3] => тестовое значение 3,
[param4] => тестовое значение 4
)
Первый уровень массива данных – это массивы модулей. Каждый элемент этого массива имеет код аналогичный коду модуля, в который будут записываться параметры. Значением является массив параметров и их значений, которые будут записываться в настройки модуля.
option.export.data
Данное действие берет данные из настроек модулей 1С-Битрикс и записывает их в хранилище, используя метод GetOptionString.
Пример вызова действия:
array(
"name" => " Получаем значение настроек модулей и сохраняем в хранилище ",
"code" => "option.export.data",
"data_output_code" => "bitrix_option",
"prev_disable" => "Y",
"autocomplete" => "Y",
"parameter" => array(
"main" => array("email_from","site_name"),
),
),
Где:
- name – текстовое описание данного действия (отображается в мастере)
- code – код действия
- data_output_code – код массива в хранилище в котором сохранится получаемый массив данных
$arResult["DATA"][ data_output_code] - prev_disable – если установить значение “Y”, то блокирует кнопку возврата назад
- autocomplete – если установить значение “Y”, то будет автоматически запущено следующее действие без ожидания пользователя.
- parameter – массив данных который показывает какие модули и какие параметры брать из 1С-Битрикс.
Для выполнения данного действия массив параметров должны быть правильно подготовлен:
"modul1" => array("param1","param2"),
"modul2" => array("param3","param4"),
iblocktype.import.data
Действие создает типы инфоблоков на основе данных хранилища.
Пример вызова действия:
array(
"name" => "Создаёт типы инфоблоков из данных хранилища",
"code" => "iblocktype.import.data",
"data_input_code" => "iblocktype_array",
"prev_disable" => "Y",
"autocomplete" => "Y",
"parameter" => array(),
),
Где:
- name – текстовое описание данного действия (отображается в мастере)
- code – код действия
- data_output_code – код массива в хранилище в котором сохранится получаемый массив данных
$arResult["DATA"][ data_output_code] - prev_disable – если установить значение “Y”, то блокирует кнопку возврата назад
- autocomplete – если установить значение “Y”, то будет автоматически запущено следующее действие без ожидания пользователя.
iblocktype.export.data
Действие получает данные о типах инфоблоков и сохраняет их в хранилище.
Пример вызова действия:
array(
"name" => "Получает данные типов инфоблоков и сохраняем в хранилище",
"code" => "iblocktype.export.data",
"data_output_code" => "iblocktype_array",
"prev_disable" => "Y",
"autocomplete" => "Y",
"parameter" => array(),
),
Где:
- name – текстовое описание данного действия (отображается в мастере)
- code – код действия
- data_output_code – код массива в хранилище в котором сохранится получаемый массив данных
$arResult["DATA"][ data_output_code] - prev_disable – если установить значение “Y”, то блокирует кнопку возврата назад
- autocomplete – если установить значение “Y”, то будет автоматически запущено следующее действие без ожидания пользователя.
iblock.import.archive
Данное действие распаковывает инфоблоки из архивов.
Пример вызова действия:
array(
"name" => "Распаковка инфоблоков",
"code" => "iblock.import.archive",
"prev_disable" => "Y",
"autocomplete" => "Y",
"data_output_code" => "iblock_unpack",
"parameter" => array(
array(
"source" => "/test/iblock_pack/sf-ru-activity.zip",
"destination" => "wizard_test",
"site" => "ru",
),
array(
"source" => "/test/iblock_pack/sf-ru-news.zip",
"destination" => "wizard_test",
"site" => "ru",
),
),
),
Где:
- name – текстовое описание данного действия (отображается в мастере)
- code – код действия
- data_output_code – код массива в хранилище в котором сохранится получаемый массив данных
$arResult["DATA"][ data_output_code] - prev_disable – если установить значение “Y”, то блокирует кнопку возврата назад
- autocomplete – если установить значение “Y”, то будет автоматически запущено следующее действие без ожидания пользователя.
- parameter – массив данных который показывает какие инфоблоки, куда и с какими параметрами их распаковывать.
- source – локальный путь к архиву с инфоблоком.
- destination – тип инфоблока в который необходимо распаковать инфоблок.
- site – код сайта к которому привязывается инфоблок.
file.zip
Данное действие архивирует файл(ы) и/или директори(ю)(и) из A в Б.
Пример вызова действия:
array(
"name" => "Архивируем файлы (папки) из А в Б",
"code" => "file.zip",
"prev_disable" => "Y",
"autocomplete" => "Y",
"parameter" => array(
array(
"source" => "/test/zip/a",
"destination" => "/test/zip/b/dir.zip",
"name" => "Пример архивирования папки",
),
array(
"source" => "/test/zip/c/photoresize.php",
"destination" => "/test/zip/b/file.zip",
"name" => "Пример архивирования файла",
),
),
),
Где:
- name – текстовое описание данного действия (отображается в мастере)
- code – код действия
- data_output_code – код массива в хранилище в котором сохранится получаемый массив данных
$arResult["DATA"][ data_output_code] - prev_disable – если установить значение “Y”, то блокирует кнопку возврата назад
- autocomplete – если установить значение “Y”, то будет автоматически запущено следующее действие без ожидания пользователя.
- parameter – массив данных который показывает что и куда архивировать.
- source – источник для копирования. Это может быть папка или файл. Путь должен задаваться локально.
- destination – путь назначения для архивации (локальный путь к папке).
file.unzip
Данное действие разархивирует архив в Б.
Пример вызова действия:
array(
"name" => "Разархивируем файлы из А в Б",
"code" => "file.unzip",
"prev_disable" => "Y",
"autocomplete" => "Y",
"parameter" => array(
array(
"source" => "/test/unzip/test.zip",
"destination" => "/test/unzip/b",
"name" => "Пример распаковки архива",
),
array(
"source" => "/test/unzip/test2.zip",
"destination" => "/test/unzip/c",
"name" => "Пример распаковки архива 2",
),
),
),
Где:
- name – текстовое описание данного действия (отображается в мастере)
- code – код действия
- data_output_code – код массива в хранилище в котором сохранится получаемый массив данных
$arResult["DATA"][ data_output_code] - prev_disable – если установить значение “Y”, то блокирует кнопку возврата назад
- autocomplete – если установить значение “Y”, то будет автоматически запущено следующее действие без ожидания пользователя.
- parameter – массив данных который показывает что и куда распаковывать.
- source – локальный путь к архиву.
- destination – путь назначения для распаковки файла (локальный путь к папке).
file.copy
Данное действие копирует файл(ы) и/или директори(ю)(и) из A в Б. Для каждого.
Пример вызова действия:
array(
"name" => "Копируем файлы (папки) из А в Б",
"code" => "file.copy",
"prev_disable" => "Y",
"autocomplete" => "Y",
"parameter" => array(
array(
"source" => "/test/copy/a",
"destination" => "/test/copy/b",
"name" => "Пример копирования папки",
),
array(
"source" => "/test/copy/c/CRM.php",
"destination" => "/test/copy/b/CRM.php",
"name" => "Пример копирования файла",
),
),
),
Где:
- name – текстовое описание данного действия (отображается в мастере)
- code – код действия
- data_output_code – код массива в хранилище в котором сохранится получаемый массив данных
$arResult["DATA"][ data_output_code] - prev_disable – если установить значение “Y”, то блокирует кнопку возврата назад
- autocomplete – если установить значение “Y”, то будет автоматически запущено следующее действие без ожидания пользователя.
- parameter – массив данных который показывает что и куда копировать.
- source – источник для копирования. Это может быть папка или файл. Путь должен задаваться локально.
- destination – путь назначения для копирования (локальный путь к папке)
data.import.file
Данное действие предназначено для получения массива данных из файла и сохранение его в хранилище. Массив назначения указывается в параметре data_output_code.
Пример вызова действия:
array(
"name" => "Получаем данные из источника",
"code" => "data.import.file",
"data_output_code" => "data_from_file",
"prev_disable" => "Y",
"autocomplete" => "Y",
"parameter" => array(
"file" => "/config/.test.data.php",
),
),
Где:
- name – текстовое описание данного действия (отображается в мастере)
- code – код действия
- data_output_code – код массива в хранилище в котором сохранится получаемый массив данных
$arResult["DATA"][ data_output_code] - prev_disable – если установить значение “Y”, то блокирует кнопку возврата назад
- autocomplete – если установить значение “Y”, то будет автоматически запущено следующее действие без ожидания пользователя.
- parameter – массив параметров действия
- file – относительный путь к файлу с данными
data.export.file
Данное действие предназначено для сохранения определенного массива из хранилища $arResult["DATA"][ data_input_code] и сохранение его в файле.
Пример вызова действия:
array(
"name" => "Записываем данные в файл",
"code" => "data.export.file",
"data_input_code" => "data_from_file",
"prev_disable" => "Y",
"autocomplete" => "Y",
"parameter" => array(
"file" => "/config/.test.data.php",
),
),
Где:
- name – текстовое описание данного действия (отображается в мастере)
- code – код действия
- data_ input _code – код массива в хранилище из которого берутся данные
$arResult["DATA"][ data_ input _code] - prev_disable – если установить значение “Y”, то блокирует кнопку возврата назад
- autocomplete – если установить значение “Y”, то будет автоматически запущено следующее действие без ожидания пользователя.
- parameter – массив параметров действия
- file – конфигурационный файл с параметрами которые необходимо запросить у пользователя
data.add.property
Данное действие позволяет получить данные от пользователя и сохранить их в хранилище.
Пример вызова действия:
array(
"name" => "Получаем данные от пользователя",
"code" => "data.add.property",
"prev_disable" => "Y",
"data_output_code" => "data_from_user",
"parameter" => array(
"file" => "/.property.config.php",
),
),
Где:
- name – текстовое описание данного действия (отображается в мастере)
- code – код действия
- data_output_code – код массива в хранилище в котором сохранится получаемый массив данных
$arResult["DATA"][ data_output_code] - prev_disable – если установить значение “Y”, то блокирует кнопку возврата назад
- autocomplete – если установить значение “Y”, то будет автоматически запущено следующее действие без ожидания пользователя.
- parameter – массив параметров действия
- file – конфигурационный файл с параметрами которые необходимо запросить у пользователя
data.add.config
Данное действие предназначено для получения массива из параметров действия и запись их в хранилище. Массив назначения указывается в параметре data_output_code.
Пример вызова действия:
array(
"name" => "Получаем данные из конфигурации и записываем в хранилище",
"code" => "data.add.config",
"data_output_code" => "data_from_config",
"prev_disable" => "Y",
"autocomplete" => "Y",
"condition" => array(
"property" => array(
array(
"array" => "site_config",
"key" => "sf4",
"value" => "Y",
"operator" => "=="
),
),
),
"parameter" => array(
"test" => array(
"param1" => "тестовое значение 1",
"param2" => "тестовое значение 2",
),
),
),
Где:
- name – текстовое описание данного действия (отображается в мастере)
- code – код действия
- data_output_code – код массива в хранилище в котором сохранится получаемый массив данных
$arResult["DATA"][ data_output_code] - prev_disable – если установить значение “Y”, то блокирует кнопку возврата назад
- autocomplete – если установить значение “Y”, то будет автоматически запущено следующее действие без ожидания пользователя.
- parameter – массив данных которые передаются в массив хранилища
- condition – массив условий, параметр необязателен, шаг выполняется если условие выполнено