Существует возможность добавить в репозиторий свои собственные компоненты для быстрой установки. Добавленные компоненты будут доступны только вам. Добавление в офицальный репозиторий производится вручную разработчиками cms
Допустим, вы хотите свой добавить сниппет под названием myFavoriteSnippet.
/**
* myFavoriteSnippet
*
* Описание моего сниппета
*
* @author Автор
* @category Мои сниппеты
* @version 1
*/
Внутри папки создайте структуру install/assets/snippets/
Скопируйте Snippet.myFavoriteSnippet.tpl в папку snippets.
Создайте zip-архив папки.
Вы можете не делать архив, а просто поместить дистрибутив на github. В этом случае пункт 5 вам не требуется - Гитхаб сам сформирует ссылку на архив.
Архив нужно поместить в интернет.
Зайдите в репозиторий, добавьте этот архив в свой личный репозиторий кнопкой "Add package".
При авторизации в репозитории внутри панели администрирования вы сможете устанавливать этот сниппет в один клик на любом сайте.
Точно таким же образом вы можете создавать компоненты для быстрой установки чанков, модулей, плагинов и создания ТВ-параметров.
Создайте файл sitemap_priority.tpl где sitemap_priority - название будущего параметра
Поместите его в папку install/assets/tvs/ Для модулей это будет папка modules, плагинов - plugins, чанков - chunks.
Код:
/**
* sitemap_priority
*
* Для карты сайта
*
* @category Категория
* @name sitemap_priority
* @internal @caption Приоритет страницы
* @internal @input_type dropdown
* @internal @input_options 0.1||0.2||0.3||0.4||0.5||0.6||0.7||0.8||0.9||1
* @internal @input_default 0.5
* @internal @output_widget
* @internal @output_widget_params
* @internal @lock_tv 0
* @internal @template_assignments *
* @internal @modx_category SEO
* @internal @installset sample
*/
В отличие от элементов, создание документов выглядит несколько иначе.
В корне папки install нужно создать файл
setup.data.sql
Приблизительный код создания нового ресурса с именем sitemap.xml, тип text/xml, содержимое - вызов сниппета sitemap.
INSERT INTO `{PREFIX}site_content` (`type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `content`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`) VALUES
('document','text/xml','sitemap.xml','','','sitemap.xml','','1','0','0','0','0','','[[sitemap]]','0','0','7','1','1','1','1376384158','1','1377167369','0','0','0','1376384158','1','','0','0','0','0','1');
Поля в этом запросе соответствуют полям в таблице site_content.