CMPGeneratorPro

Ускорение разработки собственных пакетов для MODX используя графический интерфейс.
Автор дополнения
Prihod
Пакетов
33
Закачек
10 225
Обычно отвечает в течение суток
Автор дополнения
Пакетов
33
Закачек
10 225
Обычно отвечает в течение суток
Версия 2.1.0-pl
Дата выпуска 23.04.2023
Загрузки 147
Просмотры 10 144
Внимание, этот компонент требует версию MODX не ниже 2.3 !

CMPGenerator Pro – предназначен для разработчиков MODX, которые хотят ускорить и облегчить создание своих собственных пакетов, используя графический интерфейс.


Что может CMPGenerator Pro:


  1. создать базовую файловую структуру пакета, а так же при желании базовый класс + классы для валидации и работы с POST данными;
  2. автоматически добавить информацию о вашем пакете в extension_package и в namespaces Modx-а что избавляет вас на этапе разработки от сообщении об ошибки типа Could not load class: когда вы пытаетесь работать со своими таблицами;

  3. создать схемные xpdo-файлы и xpdo-классы для ваших таблиц баз данных, а также указать зависимости между ними (Composite Aggregate);
  4. расширять базовые классы Modx;
  5. создавать в 2 клика свой тип документов Modx за счет расширения класса modResource (автоматически создадутся соответствующие контролеры, процессоры и js файлы);
  6. создать для пользовательских таблиц mgr контролеры, а также mgr и web процессоры (для mgr будут созданы js файлы с функционалам для работы с полями таблицы с привязкой к их типу);
  7. задать php тип для полей таблицы, что влияет на то какой компонент extjs будет использоваться для работы с данным полем, а так же как его данные будет обрабатывать Modx;
  8. добавить в меню админки Modx действие для вашего mgr котроллера;
  9. собрать транспортный пакет с автоматическим включением в него:
    • таблиц;
    • чанков, сниппетов и плагинов(для того что бы события на которые подписан плагин были добавлены в транспортный пакет данный плагин должен быть создан в админке с подпиской на нужные события) из соответствующих папок в elements;

    • опций;
    • пунктов меню.


Важно! Название базового класса пакета не должно совпадать с названием какой либо из таблиц БД для этого пакета



Видео обзор:



Отправка запроса на web процессоры:

Отправка запроса на web процессоры ничем в плане пораметров не отличается от отправки запросов на mgr процессоры.


POST запросы следует отправлять на URL:

https://example.com/assets/components/название_пакета/action.php

Который должен содержать обязательный параметр action со значение пути от директории веб процессоров до скрипта нужного действия.


Пример кода для пакета с названием mypackage который получает некий список пользователей через процессор с названием getlist который расположен в директории /core/components/mypackage/processors/web/users/


const payload = {
    action: 'users/getlist',
};

fetch('https://example.com/assets/components/mypackage/action.php', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json;charset=utf-8'
        },
        body: JSON.stringify(payload)
    })
    .then(function (response) {
        return response.json();
    })
    .then(function (response) {
        if(response.success) {
            console.log('total', response.total);
            console.log('list', response.results);
        } else {
            console.error(response.message);
        }
    })
    .catch (function (error) {
        console.error('Request failed', error);
});

[2.1.0-pl] - 2023-04-23

Добавлено

  • Небольшие улучшения в шаблоны генерируемого кода

Исправлено

  • Мелкие баги

[2.0.0-pl] - 2021-05-28

Изменено

  • Файловая структура и шаблоны файлов.

Исправлено

  • Чтение schema.xml в MODX Revolution 2.8.1-pl
  • Fixed: Read schema.xml in MODX Revolution 2.8.1-pl

Важно! Пакеты, созданные в версии 1.0.*, не поддерживаются

Последние обсуждения в сообществе MODX.pro