modExtra. Новые "плюшки" к чаю

Давно я не писал статей и заметок о нашем любимом MODX. Настало время это исправить. Пакет modExtra не обновлялся с июля 2019ого, по этому я решил добавить свои наработки за пару лет.


В Grid таблицах теперь выводятся выбранные Категории, Пользователи, Дата, превью изображений.


На скриншотах вы можете увидеть что добавлена дополнительная вкладка Категории и в ней существует возможность добавление не только самой категории, но и добавление Категории товара miniShop2.

Также были внесены изменения в модальное окно для лучшего юзабилити.


В системных настройках добавлены все более менее используемые типы xtype, такие как:

modx-combo-template
modx-combo-language
modx-combo-context
modx-combo-user
modx-combo-source
combo-boolean
numberfield
textfield
textarea


Ряд изменений

  1. Добавлена возможность добавления папки с шаблонами
  2. Добавлена возможность добавления событий
  3. Добавлена возможность добавленя системных настроек по умолчанию
  4. Добавлена возможность добавления источников файлов
  5. Добавлена возможность вставки в поле визуального редактора (по умолчанию TinyMCE)
  6. При сборке пакета создается запись в системеной настройке extension_packages
Хочу с вами поделиться своей наработкой modExtra.

Есть пара нюансов с которыми нужна помощь.
1. Каким образом можно обновить шаблон с ID 1 на тот шаблон, который я через компонент добавляю?
2. Возможно ли как-то отлавливать только что созданные источники файлов через пакет и их ID по уникальному имени передавать в шаблон?
3. Как поправить ресолвер таким образом, чтобы добавление системных настроек и остальных данных из папки elements происходило после создания таблиц из схемы в базу, и установки всех добавляемых компонентов?
4. Каким образом сделать выбор компонентов при установке как в компоненте modMySettings

Если устранить все эти проблемы, то можно будет создавать шаблоны на файлах с Fenom особо не напрягаясь.
SEQUEL.ONE
17 марта 2020, 20:23
modx.pro
3
746
+11

Комментарии: 18

iWatchYouFromAfar
17 марта 2020, 20:31
+2
Хорошо что у вас хватило ума всё это не пихать в родной репозиторий modExtra. За это ставлю плюс.
    Aleksandr Huz
    17 марта 2020, 22:00
    0
    Зачем это все нужно? Я имею ввиду, что вы добавили категории, пользователей и т.д для кого?

    1. Каким образом можно обновить шаблон с ID 1 на тот шаблон, который я через компонент добавляю?
    Например, вот так.

    2. Возможно ли как-то отлавливать только что созданные источники файлов через пакет и их ID по уникальному имени передавать в шаблон?
    Что именно передать? Напишите сниппет, который будет получать необходимый источник и вставьте его в шаблон.

    3. Как поправить ресолвер таким образом, чтобы добавление системных настроек и остальных данных из папки elements происходило после создания таблиц из схемы в базу, и установки всех добавляемых компонентов?
    Перенести создание сис. настроек в резолвер

    4. Каким образом сделать выбор компонентов при установке как в компоненте modMySettings
    Изучить исходники
      SEQUEL.ONE
      17 марта 2020, 22:09
      0
      Зачем это все нужно? Я имею ввиду, что вы добавили категории, пользователей и т.д для кого?
      В первую очередь заготовка для себя. Выдернул из последних созданных пакетов. Нужно было где-то всё вместе хранить. Ну и это основа для шаблонов. В будущем хотелось бы заняться лендингами на моих наработках.



      Что именно передать? Напишите сниппет, который будет получать необходимый источник и вставьте его в шаблон.
      Похоже неправильно выразился, все действия перечисленные мне необходимо сделать при установке пакета.
        yani
        18 марта 2020, 14:57
        0
        Да это же ContentEditor от Modmore =)
          SEQUEL.ONE
          18 марта 2020, 15:33
          +1
          ContentBlocks и нет это sOneLandingPage. Фишек больше и заточен под Landing страницы. Как разберемся с заготовкой modExtra будем клепать шаблоны с установкой в один клик) Ну а доступно будет в нашем репозитории store.sequel.one
      Алексей Соин
      17 марта 2020, 22:22
      +3
        Андрей Степаненко
        18 марта 2020, 05:05
        0
        3. Как поправить ресолвер таким образом, чтобы добавление системных настроек и остальных данных из папки elements происходило после создания таблиц из схемы в базу, и установки всех добавляемых компонентов?
        Назови резолвер так чтобы по алфавиту твой резолвер был последним. Тогда и запускаться он будет позже.

        4. Каким образом сделать выбор компонентов при установке как в компоненте modMySettings
        Здесь все есть:
        https://github.com/webnitros/modMySettings/blob/master/_build/setup.options.php

        Еще момент: при удалении компонента, резолверы удаляют и папку с шаблоном. То есть все что положиться в core/elements/ будет уделено
          SEQUEL.ONE
          18 марта 2020, 10:39
          0
          Еще момент: при удалении компонента, резолверы удаляют и папку с шаблоном. То есть все что положиться в core/elements/ будет уделено
          Папка с шаблоном у меня лежит в assets/templates/default/ Здесь лежит всё и чанки и шаблоны, и стили со скриптами. Если использовать Apache, то папки с чанками и шаблонами недоступны для обычных юзеров из-за файла .htaccess с содержимым:

          Order Deny,Allow
          Deny from all
          Ну а для тех кто использует nginx нужно в секцию server подобное правило указывать. Мне к примеру ужасно неудобно стили со скриптами держать в папке assets, а чанки и шаблоны в core.

          Собственно назревает вопрос, что нужно сделать, чтобы после удаления компонента папка с шаблонами не тёрлась?
            Андрей Степаненко
            18 марта 2020, 11:22
            0
            Собственно назревает вопрос, что нужно сделать, чтобы после удаления компонента папка с шаблонами не тёрлась?
            // Files resolvers
                    $vehicle->resolve('file', [
                        'source' => $this->config['core'],
                        'target' => "return MODX_CORE_PATH . 'components/';",
                        xPDOTransport::RESOLVE_FILES_REMOVE => false
                    ]);
            вот эта опция, только надо проверить, помню с ней какая та проблема была!
              SEQUEL.ONE
              18 марта 2020, 11:37
              0
              Папка остаётся, а содержимое трётся(
                Андрей Степаненко
                18 марта 2020, 11:41
                0
                а ну вот и проблема с ним.
                Вообще вот здесь все происходит
                prnt.sc/ri8x24

                core/xpdo/transport/xpdovehicle.class.php 187 строка
                  Андрей Степаненко
                  27 марта 2020, 21:55
                  0
                  Если не удалось разобрать, то вот статья от Ильи Уткина про cache манеджер который как раз в этих параметрах используется.
                  modx.pro/solutions/16353

                  P.S.: напиши плиз, если решится проблема с помощью данной опциий.
              SEQUEL.ONE
              18 марта 2020, 13:39
              0
              Ещё вопрос по поводу

              Здесь все есть:
              github.com/webnitros/modMySettings/blob/master/_build/setup.options.php
              В старой версии пакетов это ресолверы? Мне необходимо будет файл /_build/resolvers/setup.php править?
            Андрей Степаненко
            18 марта 2020, 05:22
            1
            +6
            Может пригодиться моя сборка modExtra
            github.com/webnitros/siteDev/tree/master/core/components/sitedev/Extras/modExtra

            Еще считаю полезно прицепить вот такие кнопки

            А то вспоминать откуда у тебя компонента скачивается, постоянное мучение.

            Ссылка на то как кнопки добавить:
            https://github.com/webnitros/siteDev/blob/103270a49c69539d934bafc4ff9f9891dde7a684/core/components/sitedev/Extras/modExtra/core/components/modextra/controllers/home.class.php#L91

            Можно конечно в какой нибудь плагин завернуть, но я не стал заморачиваться, добавил их в контроллер с проверкой на существования папки Extras/myComponent, в случае если папка существует то кнопки показываются
              SEQUEL.ONE
              18 марта 2020, 12:46
              0
              Я правильно понимаю, что эти кнопки будут отображаться в случае если настроены символические ссылки?
                Андрей Степаненко
                18 марта 2020, 13:48
                0
                Нет, они отображаются если в корне есть директория Extras/mycomponent/
                Там обычная проверка файла идет file_exits.
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              18