Экспортер для UMI.Market

Для размещения в UMI.Market партнёрский модуль, расширение для модуля или готовое решение должны представлять собой tar-архив. Содержание этого архива должно включать в себя все экспортируемые директории и файлы, а также специальный xml-файл - результат экспорта в формате umiDump 2.0, описывающий экспортируемые директории, файлы, объекты, страницы, типы данных, ключи реестра и другие данные, относящиеся к экспортируемому модулю, расширению или решению. Партнёрский модуль, расширение для модуля или готовое решение должны быть представленны в виде архива tar и иметь название прописанное символами нижнего регистра. 

Для упаковки решения, модуля или расширения следует воспользоваться консольной утилитой packer. Для работы утилиты необходима CLI-версия PHP 5.3 и выше. Также должно присутствовать расширение Phar.

Создайте в корне сайта директорию developerTools и распакуйте в неё содержимое архива так, чтобы файл packer.php находился в директории на два уровня ниже корня сайта (например, в директории developerTools/modulePacker/packer.php). В интерфейсе командной строки перейдите в директорию developerTools/modulePacker и запустите packer.php, указав в качестве единственного параметра путь до конфигурационного файла, в котором должны быть явно описаны все подлежащие экспорту данные, а также директории и файлы.

Пример конфигурационного файла:

<?php
    return [
        'package' => 'Packer',
        'destination' => './libs/packer/out/packer/',
        'directories' => [
            './libs/packer/class'
        ],
        'files' => [
            './libs/packer/config.sample.php',
            './libs/packer/run.php',
        ],
        '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'
        ]
    ];
?> 

Описание обязательных ключей масcива:

package — имя пакета, может содержать только латинские символы в нижнем регистре и символы нижнего подчёркивания. Имя пакета должно быть уникальным, рекомендуем добавлять к нему префикс с названием вашей организации;

destination — директория, в которую будет помещено решение;

Описание необязательных ключей массива:

directories — список упаковываемых директорий (будут добавлены все файлы рекурсивно);

files — отдельные файлы, подлежащие упаковке;

Примечание: Одно из полей "directories" или "files" должно быть обязательно заполнено.

registry — ключи реестра, подлежащие экспорту (обязательно необходимо указать при экспорте модуля);

types — идентификаторы типов данных, подлежащих экспорту;

fieldTypes — идентификаторы типов полей, подлежащих экспорту;

objects — идентификаторы объектов, подлежащих экспорту;

branchesStructure — идентификаторы экспортируемых страниц структуры;

langs — идентификаторы экспортируемых языков системы;

templates — идентификаторы экспортируемых шаблонов системы (файлы или директории шаблонов нужно указать явно в секции files или directories соответственно);

savedRelations - названия типов связей, которые будут сохранены при экспорте (возможные значения: files, langs, domains, templates, objects, fields_relations, restrictions, permissions, hierarchy, guides)

files — значения полей типов 'file', 'swf_file' и 'img_file' в виде файлов при экспорте страниц;

langs — языки при экспорте страниц;

domains — домены при экспорте страниц;

templates — шаблоны при экспорте страниц;

objects — объекты при экспорте страниц;

fields_relations — значения полей типа 'relation', 'optioned' и 'symlink' при экспорте страниц/объектов;

restrictions — ограничения значений полей при экспорте объектных типов данных;

permissions — права на страницы и модули при экспорте страниц и объектов, соответственно;

hierarchy — иерархические связи при экспорте страниц;

guides — объектные типы данных, их содержимое и связи справочника с полем при экспорте объектного типа с полям типа "relation",

Пример команды:

php libs/packer/run.php libs/packer/config.sample.php

Результат будет в директории /libs/packer/out/packer/

Результатом является tar архив, содержащий ваше решение.