Подготовка ZIP расширения Joomla
Подготовьте установочный архив своего расширения до создания публичного выпуска. Понадобятся исходные файлы продукта, его манифест, отдельный сайт для проверки установки и элемент с платформой «Расширение Joomla».
Согласуйте техническую идентичность
В SovMart параметры платформы заполняются автором. Они должны соответствовать расширению, которое установит Joomla.
| Поле SovMart | Пример | Как выбрать значение |
|---|---|---|
«Тип расширения Joomla» — type | component, plugin, module, package | Укажите реальный тип расширения |
«Системное имя расширения» — element | com_example, mod_example, example | Используйте техническое имя установленного расширения |
«Группа плагина» — folder | system | Обязательно для плагина; должна совпадать с его группой |
«Область Joomla» — client | site, administrator | Выберите область модуля или шаблона |
«Лицензия расширения» — license | GPL-2.0-or-later | Укажите лицензию распространяемого кода |
Для системного плагина с именем поставки plg_system_example рекомендуем согласованную тройку type=plugin, element=example, folder=system. Генератор XML умеет убирать префикс plg_ и префикс группы, но лучше сразу сохранить канонические значения без этих префиксов и не менять их между выпусками.
Имя элемента SovMart, его UUID и системное имя расширения Joomla — разные идентификаторы. Не подставляйте UUID в поле element. Примеры для компонента, модуля, плагина и пакета и порядок проверки при переименовании приведены в инструкции по названиям и идентификаторам.
Соберите архив
Манифест Joomla — XML с корневым элементом <extension>, типом расширения, номером версии и перечислением устанавливаемых файлов. Для плагина группа задаётся атрибутом group. Точный состав зависит от типа расширения. Сверяйте собственный манифест с официальным описанием манифестов Joomla.
Например, структура современного плагина может выглядеть так:
plg_system_example_1_2_3.zip
├── example.xml
├── LICENSE.txt
├── services/
│ └── provider.php
├── src/
│ └── Extension/
│ └── Example.php
└── language/Это схема состава, а не готовое расширение. В манифесте перечислите именно те файлы и папки, которые входят в ваш продукт. Архив компонента, модуля или шаблона будет иметь другую структуру.
- Соберите только распространяемые файлы и корректный манифест. Уберите локальные настройки, секреты, служебные копии и временные файлы разработки.
- Проверьте, что пути в манифесте соответствуют содержимому ZIP, включая регистр букв.
- Назовите архив, например,
com_example_1.2.3.zipилиcom_example_1_2_3.zip. Одиночные точки между непустыми частями основы разрешены. Запрещены ведущая и завершающая точка основы, две точки подряд и активное PHP-расширение внутри имени, напримерpackage.php.zip. - Создайте обычный ZIP без пароля и символических ссылок. Внутри используйте относительные пути с
/, без.., абсолютных путей и дублирующихся имён, различающихся только регистром. - Проверьте чистую установку и обновление с поддерживаемой предыдущей версии на отдельном сайте Joomla. Запишите фактические версии Joomla и PHP.

Содержимое ZIP-пакета и технические параметры расширения Joomla.
Проверьте лицензию и уведомления
Укажите фактическую лицензию распространяемого кода в поле «Лицензия расширения» SovMart и в <license> своего манифеста. Эти сведения описывают код; платный доступ к скачиванию настраивается отдельно. Названия LICENSE.txt или LICENSE в архиве используйте для текста выбранной лицензии, а не для ключа активации покупателя.
- Сверьте права на все включённые части: свой код, сторонние библиотеки, изображения и другие материалы.
- Включите тексты лицензий и сохраните уведомления об авторах, которые требуются условиями распространения этих частей. Одного названия лицензии в карточке недостаточно, чтобы описать весь смешанный состав.
- Для изменённого стороннего кода обозначьте происхождение и свои изменения в предусмотренных лицензией местах. В документации объясните, какую версию вы поддерживаете.
- Проверьте, что сведения в ZIP, манифесте, документации и поле SovMart согласованы. Не выбирайте лицензию только по подсказке поля.
Вопросы лицензирования расширений Joomla и различия кода и других материалов поясняет официальная Joomla License FAQ. Для конкретных обязанностей при распространении сверяйтесь с текстом лицензии каждой включённой части.
Загрузите и проверьте выпуск
Создайте версию элемента, выберите платформу, укажите номер выпуска, загрузите архив через форму файла версии и настройте совместимость. Формат номера версии и имя ZIP задаются отдельно. Номер 1.2.3 и имя com_example-1.2.3.zip допустимы, если остальные правила версии и архива выполнены.
После сохранения убедитесь, что файл прикреплён к нужной версии. Затем пройдите проверку готовности и скачайте опубликованный выпуск как покупатель. Проверьте, что полученный ZIP устанавливает именно заявленную версию.
Лимиты размера загрузки, числа файлов, распакованного объёма, сжатия и вложенности зависят от настроек сервиса. Ориентируйтесь на форму и сообщение сервера; универсального гарантированного лимита в мегабайтах нет.
Если архив отклонён
| Сообщение или симптом | Что проверить |
|---|---|
| «Можно загружать только ZIP-файлы» | Финальное расширение и фактический формат ZIP; отсутствие пустых частей между точками и внутреннего PHP-расширения вроде package.php.zip |
| «ZIP-файл содержит небезопасный путь» | Абсолютные пути, .., обратные слеши, дубликаты имён |
| Ошибка шифрования или символической ссылки | Пересоберите архив без пароля и ссылок |
| Превышен безопасный лимит | Уменьшите состав; при необходимости сообщите поддержке размер и точный текст ошибки |
| ZIP принят, но Joomla не устанавливает расширение | Проверьте манифест, его пути и журнал установщика Joomla; успешная загрузка не проверяет установку |
Результат: опубликован проверенный установочный архив с согласованной идентичностью и совместимостью. Если он объединяет несколько расширений, дополнительно прочитайте о пакете Joomla; для доставки обновлений — о сервере обновления.