Додавання власних розширень в репозиторій

    Існує можливість додати в репозиторій свої власні компоненти для швидкої установки. Додані компоненти будуть доступні тільки вам. Додавання в офіційний репозиторій проводиться вручну розробниками 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 вам не потрібен - github сам сформує посилання на архів.

    1. Архів потрібно помістити в інтернет.

    2. Зайдіть в репозиторій, додайте цей архів у свій особистий репозиторій кнопкою "Add package".

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

    ТВ, плагіни, модулі, Чанки

    Точно таким же чином ви можете створювати компоненти для швидкої установки чанків, модулів, плагінів і створення ТВ-параметрів.

    Створення ТВ-параметра

    Створіть файл 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.