CustomExtra 3.0.0-beta для MODX3
Визуальный конструктор xPDO-объектов для MODX3. Создавайте кастомные таблицы, поля и связи через интерфейс админки без написания XML-схем вручную.

— Визуальный конструктор объектов — создание классов и таблиц через UI
— Настраиваемые поля — все типы данных MySQL (varchar, int, text, datetime и др.)
— Связи между объектами — Composite и Aggregate с настройкой cardinality
— Автогенерация — PHP-классы и таблицы создаются автоматически
— Динамические пункты меню — быстрый доступ к данным из админки
— CRUD-интерфейс — управление записями без написания кода
— Интеграция с pdoTools — вывод данных на сайте
— MODX Revolution 3.0+
— PHP 8.0+
— MySQL 5.7+ / MariaDB 10.3+
Пакет доступен в modstore.pro
1. Установите пакет через Extras → Installer
2. Перейдите в Extras → CustomExtra
3. Создайте первый объект
1. Откройте вкладку Объекты
2. Нажмите Создать объект
3. Заполните:
— Класс — название в PascalCase (например, `Product`, `OrderItem`)
— Таблица — имя таблицы в snake_case (например, `products`, `order_items`)
4. Добавьте поля
5. Нажмите Сохранить

CustomExtra автоматически:
— Добавит объект в XML-схему
— Сгенерирует PHP-классы с namespace `CustomExtra\Model`
— Создаст таблицу `modx_customextra_*` в базе данных
— Создаст файлы лексиконов
— none — без индекса
— index — обычный индекс (ускоряет поиск)
— unique — уникальный индекс (запрещает дубликаты)
1. Откройте вкладку Связи
2. Нажмите Создать связь
3. Выберите:
— Родитель — главный объект (например, `Category`)
— Дочерний — зависимый объект (например, `Product`)
— Тип связи: `Composite` или `Aggregate`
— Cardinality — `one` или `many`
— Foreign Key — поле в дочернем объекте для связи

Создайте пункты меню для быстрого доступа к данным:
1. Откройте вкладку Пункты меню
2. Нажмите Создать пункт меню
3. Укажите:
— Название — текст пункта меню
— Объекты — классы через `||` (например, `Product||Category`)

Пункты меню появятся в разделе Extras.
После создания объекта и пункта меню:
1. Перейдите в созданный пункт меню
2. Используйте грид для создания, редактирования и удаления записей
3. Дочерние объекты доступны через связи

Через pdoTools
В PHP-коде

Возможности
— Визуальный конструктор объектов — создание классов и таблиц через UI
— Настраиваемые поля — все типы данных MySQL (varchar, int, text, datetime и др.)
— Связи между объектами — Composite и Aggregate с настройкой cardinality
— Автогенерация — PHP-классы и таблицы создаются автоматически
— Динамические пункты меню — быстрый доступ к данным из админки
— CRUD-интерфейс — управление записями без написания кода
— Интеграция с pdoTools — вывод данных на сайте
Требования
— MODX Revolution 3.0+
— PHP 8.0+
— MySQL 5.7+ / MariaDB 10.3+
Установка
Пакет доступен в modstore.pro
1. Установите пакет через Extras → Installer
2. Перейдите в Extras → CustomExtra
3. Создайте первый объект
Использование
1. Откройте вкладку Объекты
2. Нажмите Создать объект
3. Заполните:
— Класс — название в PascalCase (например, `Product`, `OrderItem`)
— Таблица — имя таблицы в snake_case (например, `products`, `order_items`)
4. Добавьте поля
5. Нажмите Сохранить

CustomExtra автоматически:
— Добавит объект в XML-схему
— Сгенерирует PHP-классы с namespace `CustomExtra\Model`
— Создаст таблицу `modx_customextra_*` в базе данных
— Создаст файлы лексиконов
Индексы
— none — без индекса
— index — обычный индекс (ускоряет поиск)
— unique — уникальный индекс (запрещает дубликаты)
Создание связей
1. Откройте вкладку Связи
2. Нажмите Создать связь
3. Выберите:
— Родитель — главный объект (например, `Category`)
— Дочерний — зависимый объект (например, `Product`)
— Тип связи: `Composite` или `Aggregate`
— Cardinality — `one` или `many`
— Foreign Key — поле в дочернем объекте для связи

Пункты меню
Создайте пункты меню для быстрого доступа к данным:
1. Откройте вкладку Пункты меню
2. Нажмите Создать пункт меню
3. Укажите:
— Название — текст пункта меню
— Объекты — классы через `||` (например, `Product||Category`)

Пункты меню появятся в разделе Extras.
В админке
После создания объекта и пункта меню:
1. Перейдите в созданный пункт меню
2. Используйте грид для создания, редактирования и удаления записей
3. Дочерние объекты доступны через связи

На фронтенде
Через pdoTools
[[pdoResources?
&class=`CustomExtra\Model\Product`
&loadModels=`customextra`
&sortby=`id`
&sortdir=`DESC`
&where=`{"active":1}`
&tpl=`tpl.Product.item`
]]В PHP-коде
// Подключение пакета
$modx->addPackage('CustomExtra\Model', MODX_CORE_PATH . 'components/customextra/model/');
// Получение записи
$product = $modx->getObject('CustomExtra\Model\Product', ['id' => 1]);
// Создание записи
$product = $modx->newObject('CustomExtra\Model\Product');
$product->set('name', 'Новый товар');
$product->set('price', 999.99);
$product->set('active', true);
$product->save();
// Выборка с условием
$c = $modx->newQuery('CustomExtra\Model\Product');
$c->where(['active' => 1]);
$c->sortby('price', 'ASC');
$c->limit(10);
$products = $modx->getIterator('CustomExtra\Model\Product', $c);
foreach ($products as $product) {
echo $product->get('name') . ': ' . $product->get('price') . "\n";
}
// Работа со связями
$category = $modx->getObject('CustomExtra\Model\Category', 1);
$products = $category->getMany('Products'); // Alias из связи Комментарии: 2
Красавчег однозначно!!!
Охренительно! Это топ! Пора перелезать на тройку =))
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.