Для размещения в UMI.Market партнёрский модуль, расширение для модуля или готовое решение должны представлять собой tar-архив. Содержание этого архива должно включать в себя все экспортируемые директории и файлы, а также специальный xml-файл - результат экспорта в формате umiDump 2.0, описывающий экспортируемые директории, файлы, объекты, страницы, типы данных, ключи реестра и другие данные, относящиеся к экспортируемому модулю, расширению или решению. Партнёрский модуль, расширение для модуля или готовое решение должны быть представленны в виде архива tar и иметь название прописанное символами нижнего регистра.
Для упаковки решения, модуля или расширения следует воспользоваться консольной утилитой packer. Для работы утилиты необходима CLI-версия PHP 5.3 и выше. Также должно присутствовать расширение Phar.
В интерфейсе командной строки запустите classes/system/commands/Packer.php, указав в качестве единственного параметра путь до конфигурационного файла, в котором должны быть явно описаны все подлежащие экспорту данные, а также директории и файлы.
Пример команды:
php classes/system/commands/Packer.php sys-temp/packer/config/packer.config.php
Пример конфигурационного файла, результатом которого будет tar-архив в директории /sys-temp/packer/out/solution:
return [
'package' => 'PackerSample',
'destination' => './sys-temp/packer/out/solution/',
'directories' => [
'./images/SliderPictures/',
'./images/pictures/'
],
'registry' => [
'blogs20' => [
'path' => 'modules/blogs20',
'recursive' => true
]
],
'types' => [
8
],
'fieldTypes' => [
20
],
'objects' => [
4
],
'branchesStructure' => [
3
],
'langs' => [
1
],
'templates' => [
1
],
'savedRelations' => [
'fields_relations',
'files',
'hierarchy',
'permissions',
'guides'
],
'entities' => [
'modules_to_load' => [
'SlidersCollection' => 'umiSliders',
'SlidesCollection' => 'umiSliders'
],
'SlidersCollection' => [
1
],
'SlidesCollection' => [
1,
2
],
]
];
?>
Описание обязательных ключей масcива:
- package — имя пакета, может содержать только латинские символы в нижнем регистре и символы нижнего подчёркивания. Имя пакета должно быть уникальным, рекомендуем добавлять к нему префикс с названием вашей организации;
- destination — директория, в которую будет помещено решение;
Описание необязательных ключей массива:
- directories — список упаковываемых директорий (будут добавлены все файлы рекурсивно);
- files — отдельные файлы, подлежащие упаковке;
Одно из полей "directories" или "files" должно быть обязательно заполнено.
- registry — ключи реестра, подлежащие экспорту (обязательно необходимо указать при экспорте модуля);
- types — идентификаторы типов данных, подлежащих экспорту;
- fieldTypes — идентификаторы типов полей, подлежащих экспорту;
- objects — идентификаторы объектов, подлежащих экспорту;
- branchesStructure — идентификаторы экспортируемых страниц структуры;
- langs — идентификаторы экспортируемых языков системы;
- templates — идентификаторы экспортируемых шаблонов системы (файлы или директории шаблонов нужно указать явно в секции files или directories соответственно);
- savedRelations - названия типов связей, которые будут сохранены при экспорте:
- files — значения полей типов 'file', 'swf_file' и 'img_file' в виде файлов при экспорте страниц;
- langs — языки при экспорте страниц;
- domains — домены при экспорте страниц;
- templates — шаблоны при экспорте страниц;
- objects — объекты при экспорте страниц;
- fields_relations — значения полей типа 'relation', 'optioned' и 'symlink' при экспорте страниц/объектов;
- restrictions — ограничения значений полей при экспорте объектных типов данных;
- permissions — права на страницы и модули при экспорте страниц и объектов, соответственно;
- hierarchy — иерархические связи при экспорте страниц;
- guides — объектные типы данных, их содержимое и связи справочника с полем при экспорте объектного типа с полям типа "relation",
Примечание: Чтобы файлы модуля не перезаписывались при обновлении системы, при упаковке в xml-файле модуля необходимо указывать атрибут only_install="true" для необходимого файла. Например:
/classes/components/webforms/customMacros.php
Пример конфигурационного файла для решения Demomarket.