Подготовка ZIP расширения Joomla

Подготовьте установочный архив своего расширения до создания публичного выпуска. Понадобятся исходные файлы продукта, его манифест, отдельный сайт для проверки установки и элемент с платформой «Расширение Joomla».

Согласуйте техническую идентичность

В SovMart параметры платформы заполняются автором. Они должны соответствовать расширению, которое установит Joomla.

Поле SovMartПримерКак выбрать значение
«Тип расширения Joomla» — typecomponent, plugin, module, packageУкажите реальный тип расширения
«Системное имя расширения» — elementcom_example, mod_example, exampleИспользуйте техническое имя установленного расширения
«Группа плагина» — foldersystemОбязательно для плагина; должна совпадать с его группой
«Область Joomla» — clientsite, administratorВыберите область модуля или шаблона
«Лицензия расширения» — licenseGPL-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/

Это схема состава, а не готовое расширение. В манифесте перечислите именно те файлы и папки, которые входят в ваш продукт. Архив компонента, модуля или шаблона будет иметь другую структуру.

  1. Соберите только распространяемые файлы и корректный манифест. Уберите локальные настройки, секреты, служебные копии и временные файлы разработки.
  2. Проверьте, что пути в манифесте соответствуют содержимому ZIP, включая регистр букв.
  3. Назовите архив, например, com_example_1.2.3.zip или com_example_1_2_3.zip. Одиночные точки между непустыми частями основы разрешены. Запрещены ведущая и завершающая точка основы, две точки подряд и активное PHP-расширение внутри имени, например package.php.zip.
  4. Создайте обычный ZIP без пароля и символических ссылок. Внутри используйте относительные пути с /, без .., абсолютных путей и дублирующихся имён, различающихся только регистром.
  5. Проверьте чистую установку и обновление с поддерживаемой предыдущей версии на отдельном сайте Joomla. Запишите фактические версии Joomla и PHP.
ZIP расширения Joomla
ZIP расширения Joomla

Содержимое ZIP-пакета и технические параметры расширения Joomla.

Проверьте лицензию и уведомления

Укажите фактическую лицензию распространяемого кода в поле «Лицензия расширения» SovMart и в <license> своего манифеста. Эти сведения описывают код; платный доступ к скачиванию настраивается отдельно. Названия LICENSE.txt или LICENSE в архиве используйте для текста выбранной лицензии, а не для ключа активации покупателя.

  1. Сверьте права на все включённые части: свой код, сторонние библиотеки, изображения и другие материалы.
  2. Включите тексты лицензий и сохраните уведомления об авторах, которые требуются условиями распространения этих частей. Одного названия лицензии в карточке недостаточно, чтобы описать весь смешанный состав.
  3. Для изменённого стороннего кода обозначьте происхождение и свои изменения в предусмотренных лицензией местах. В документации объясните, какую версию вы поддерживаете.
  4. Проверьте, что сведения в 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; для доставки обновлений — о сервере обновления.

К оглавлению помощи

Содержание помощи