Добавление собственных расширений в репозиторий

    Существует возможность добавить в репозиторий свои собственные компоненты для быстрой установки. Добавленные компоненты будут доступны только вам. Добавление в офицальный репозиторий производится вручную разработчиками cms

    Зачем мне добавлять свои компоненты?

    • Экономия времени - сделав один раз дистрибутив для установки, вы сможете ставить его в 1 клик на любом сайте
    • Порядок - вы всегда будете иметь доступ к дистрибутиву, где бы ни находились и какой бы сайт не разрабатывали

    Пример: добавление своего сниппета

    Допустим, вы хотите свой добавить сниппет под названием myFavoriteSnippet.

    1. Создайте файл Snippet.myFavoriteSnippet.tpl
    2. Модифицируйте код файла следующим образом:
      /** 
      * myFavoriteSnippet 
      * 
      * Описание моего сниппета
      * 
      * @author Автор
      * @category Мои сниппеты
      * @version 1
      */ 
    3. Теперь нужно создать папку. Имя произвольное, но желательно избегать пробелов, спецсимволов и русских букв.

    Внутри папки создайте структуру install/assets/snippets/

    1. Скопируйте Snippet.myFavoriteSnippet.tpl в папку snippets.

    2. Создайте zip-архив папки.

    Вы можете не делать архив, а просто поместить дистрибутив на github. В этом случае пункт 5 вам не требуется - Гитхаб сам сформирует ссылку на архив.

    1. Архив нужно поместить в интернет.

    2. Зайдите в репозиторий, добавьте этот архив в свой личный репозиторий кнопкой "Add package".

    3. При авторизации в репозитории внутри панели администрирования вы сможете устанавливать этот сниппет в один клик на любом сайте.

    TВ, Плагины, Модули, Чанки

    Точно таким же образом вы можете создавать компоненты для быстрой установки чанков, модулей, плагинов и создания ТВ-параметров.

    Создание ТВ-параметра

    Создайте файл 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.