Для размещения в 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.