Экспортер для 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 array(
		'package' => 'somepackage',
		'destination' => './output',
		'directories' => array(
			'./classes/modules/blogs20',
			'./styles/skins/mac/data/modules/blogs20'
		),
		'files' => array(
			'./classes/modules/blogs20/__admin.php',
			'./classes/modules/blogs20/__custom.php',
		),
		'registry' => array(
			'blogs20' => array(
				'path' => 'modules/blogs20',
				'recursive' => true
			)
		),
		'types' => array(
			8, 9, 10
		),
		'fieldTypes' => array(
			20
		),
		'objects' => array(
			3, 4
		),
		'branchesStructure' => array(
			44, 46
		),
		'langs' => array(
			2
		),
		'templates' => array(
			1, 2
		),
		'savedRelations' => array(
			'hierarchy', 'permissions'
		)
	);
?> 

Описание обязательных ключей мас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)

Пример использования: php packer.php config.php

На выходе получится файл tar-архив, содержащий ваше решение.