Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Как загрузить?
Универсальное API для СRUD к любым таблицам базы данных MODX. Сделано для доступа к базе MODX из Vue компонентов в браузере. В состав компонента включены скрипты PVTables — редактируемые таблицы MODX на основе Vue.
Внимание. Пакет разрабатывался под MODX2.8. На MODX3 вроде пока работает, но то что пакет на MODX3 будет работать не гарантируется. Также пакет тестировался только на MYSQL 5.7.
Быстрый старт
После установки компонента зайти в админке в Пакеты->gtsAPI.
Во вкладке «Пакеты MODX» создать пакет дополнения с таблицами которого вы хотите работать. Нужно ввести имя дополнения. Для таблиц MODX ввести modx.
Во вкладке «Таблицы АПИ» создать запись для таблицы с которой нужно работать. Нужно выбрать созданный ранее пакет, ввести «Имя таблицы» — это либо произвольное имя, либо имя класса MODX таблицы базы. Если имя произвольное, то нужно ввести в «Класс таблицы» имя класса MODX таблицы базы. Нужно указать, нужные вам, права доступа для этой таблицы: Доступ только для авторизированных, Ограничение только для групп пользователей, Разрешения.

Во вкладке properties в формате JSON задать доступные действия и поля.

Настройки таблицы raschetsMatClass теперь позволяют читать, создавать и обновлять эту таблицу базы данных по gtsAPI авторизированным пользователям.
Для СRUD таблиц на фронте сделаны скрипты PVTables, включенные в состав gtsAPI. Для редактирования таблицы raschetsMatClass на странице MODX достаточно разместить код

Более подробное описание в Введение в PVTables
Гитхаб touol/gtsAPI
Гитхаб PVTables touol/PVTables
npm PVTables pvtables
Канал для обсуждения и помощи с компонентом gtsAPI (MODX). Можно обсуждать и другие вопросы: MODX, PVTables, getTables, UserTest и т.д. https://t.me/gtsapi
Внимание. Пакет разрабатывался под MODX2.8. На MODX3 вроде пока работает, но то что пакет на MODX3 будет работать не гарантируется. Также пакет тестировался только на MYSQL 5.7.
Быстрый старт
После установки компонента зайти в админке в Пакеты->gtsAPI.
Во вкладке «Пакеты MODX» создать пакет дополнения с таблицами которого вы хотите работать. Нужно ввести имя дополнения. Для таблиц MODX ввести modx.
Во вкладке «Таблицы АПИ» создать запись для таблицы с которой нужно работать. Нужно выбрать созданный ранее пакет, ввести «Имя таблицы» — это либо произвольное имя, либо имя класса MODX таблицы базы. Если имя произвольное, то нужно ввести в «Класс таблицы» имя класса MODX таблицы базы. Нужно указать, нужные вам, права доступа для этой таблицы: Доступ только для авторизированных, Ограничение только для групп пользователей, Разрешения.

Во вкладке properties в формате JSON задать доступные действия и поля.
{
"actions": {
"read": [],
"create": [],
"update": []
},
"fields": {
"id": {
"type": "view",
"class": "raschetsMatClass"
},
"label": {
"type": "text",
"class": "raschetsMatClass"
}
}
}
Настройки таблицы raschetsMatClass теперь позволяют читать, создавать и обновлять эту таблицу базы данных по gtsAPI авторизированным пользователям.
Для СRUD таблиц на фронте сделаны скрипты PVTables, включенные в состав gtsAPI. Для редактирования таблицы raschetsMatClass на странице MODX достаточно разместить код
[[!PVTable? &table=`raschetsMatClass`]]
Более подробное описание в Введение в PVTables
Гитхаб touol/gtsAPI
Гитхаб PVTables touol/PVTables
npm PVTables pvtables
Канал для обсуждения и помощи с компонентом gtsAPI (MODX). Можно обсуждать и другие вопросы: MODX, PVTables, getTables, UserTest и т.д. https://t.me/gtsapi
1.1.5-beta
-
Починена чистая установка: справочные данные (списки выбора для админки) писались раньше, чем создавались таблицы, и установка сыпала «Table 'modx_gtsapi_selects' doesn't exist». Резолверы выполняются в алфавитном порядке, а файл назывался data.php и шёл первым - переименован так, чтобы идти после tables.php. На сайтах, где 1.1.4 уже установлена, списки выбора создадутся при обновлении. 1.1.4-beta
- Установщик пакетов (/api/package) умеет ставить пункты меню менеджера: в PVExtra появился _build/configs/menus.js, формат тот же, что у сниппетов. Своего контроллера пакету заводить не нужно - пункт вешается на страницу gtsAPI, а что показать, описывается в &config.
- Своя страница в админке. Контроллер gtsAPI разбирает параметр меню &config и вызывает указанные в нём сниппеты: &config={"PVTabs":{"tabs":{"DocType":{"title":"Типы","table":"DocType"}}}} &config={"mixVue":{"app":"pvsklad","config":{"module":"BarcodeDocs"}}} Ключ — имя сниппета, значение — его параметры; вместо JSON можно указать имя системной настройки, в которой он лежит. Так любой компонент выводится в меню MODX без собственного контроллера.
- Таблицы самого gtsAPI описаны синтаксисом gtsAPI (_build/elements/ gtsapipackages.php) и ставятся резолвером, как у любого другого пакета. Раньше админка gtsAPI была ~1000 строк JSON на синтаксисе getTables внутри системной настройки. Все её действия перенесены: генерация полей и правил, экспорт-импорт таблицы, правила и селекта, копирование, подтаблицы связей. Пункт меню на старую админку убран, сам конфиг gtsapi_admin остаётся в настройках как страховка.
- Библиотека PHPExcel больше не берётся из чужого пакета: gtsAPI ищет её по настройке phpexcel_path, затем в пакете PHPExcel и только потом в старой копии внутри getTables (для сайтов, где пакет ещё не поставлен). Пакет PHPExcel добавлен в зависимости.
- Сниппет mixVue понимает config строкой JSON. Массив приходит только из Fenom, а обычный вызов [[!mixVue? &config=`{"module":"TLAll"}`]] отдаёт строку — раньше она молча игнорировалась и приложение стартовало без конфигурации. Неразобранный JSON теперь пишется в лог с текстом ошибки.
- Триггеры справочника допполей продублированы в формате gtsAPI (triggerAddFieldsAPI). Ключ gtsfunction срабатывает ТОЛЬКО в админке getTables, поэтому в новой админке правка поля или группы не приводила колонки таблиц в соответствие. Старый триггер помечен @deprecated - на удаление вместе с интерфейсом на getTables.
- Генерация правил (gen_rules) спрашивает пакет своей формой, а не чанком модалки getTables.
- Разбор id действия вынесен в rowId(): gtsAPI шлёт поля строки как есть, а ключ trs_data - формат getTables, помечен на удаление.
- Экспорт-импорт таблицы, правила и селекта отдаёт форму для PVTables, а не готовый HTML модалки getTables: в интерфейсе на PVTables старое окно открывалось пустым и ничего не сохраняло. Требуется PVTables 0.2.1.
- Импорт (save_table / save_rule / save_select) больше не прогоняется через санитайзер MODX: он выкусывал из JSON теги вида [[…]], которые законно встречаются в свойствах таблиц, и конфигурация сохранялась битой. Действия доступны только администратору.
- getTables убран из зависимостей: админка переехала на свой контроллер и PVTables, а библиотека Excel вынесена в пакет PHPExcel. Там, где getTables уже стоит, ничего не ломается - интерфейсы уживаются.
- Убраны PHP warning на PHP 8 в контроллерах таблиц: обращения к hide, sortField, multiSortMeta, showLog и к никогда не заполняемому ключу действий сделаны безопасными. Поведение прежнее, в логе перестало быть шумно.
1.1.0-beta
Первый релиз после 1.0.15-beta (модстор, 16.09.2025): 304 коммита за 11 месяцев.
Установка пакетов
- Резолвер зависимостей: недостающие пакеты доустанавливаются ПЕРЕД установкой самого пакета - поиск у провайдера или прямая ссылка на transport.zip. Список задаётся в _build/configs/dependencies.js.
- Динамические доп. поля применяются прямо при установке, без ручного прогона. Снос колонок вынесен в отдельную команду админки "Снести колонки удалённых полей".
- Поле, добавленное в схему, создаётся с ПЕРВОЙ установки (раньше нужна была вторая).
- ALTER выполняется только при реальном расхождении колонки с описанием: установка gtsShop - с 573 перестроек таблиц до одной, сборка пакета 21.6 с против 7.8 с.
- Ключевые колонки (id, первичный ключ) и динамические доп. поля не удаляются ни при каких условиях; чужая таблица класса-наследника не изменяется.
- Конфиги страниц (resources.js) и данных (data.js) умеют раскладку по сайтам: ставится только то, что относится к текущей инсталляции.
- Резолверы прав и групп пользователей: пакет привозит шаблон политик MODX, своих групп не создаёт.
Журнал и версии записей
- gtsAPILog: лог действий на стороне сервера с настраиваемым сроком хранения и ежесуточной чисткой, вкладка в админке.
- TableVersionTrait: версии записи и откат к предыдущему значению (действия versions/restore_version, флаг save_version_row).
- Логирование UniTree и диспатч триггеров целевого класса на create/update/delete.
Таблицы и интерфейс (бандл PVTables 0.2.0)
- Таблица переехала на TanStack, форк PrimeVue DataTable удалён: виртуальный скролл, автоподгонка и ручной ресайз колонок, выбор видимых колонок, закреплённая колонка действий, sticky-заголовки.
- Редактирование: inline и попап, выделение диапазона ячеек как в Excel с суммированием, автодополнение в текстовых ячейках, undo/redo для CRUD.
- Фильтры: серверные и клиентский чеклист с разделением в интерфейсе, пустые даты, datetime со своими режимами, фильтры из URL с namespace таблицы.
- Файлы: тип ячейки file с превью и выбором, съёмка с камеры, браузер файлов, распределение загрузок по год/месяц, многостраничный снимок документа в PDF.
- Мобильный режим: карточки вместо таблицы, роли полей, флаги mobile_only/desktop_only.
- Точечное обновление строк (rows_delta) с подписями автокомплитов и сохранением раскрытых дочерних строк.
Экспорт и печать
- Excel: TZ-safe даты, html в текст, настраиваемые ширины колонок и скрытие колонки через col_widths, форматирование decimal, datetime, пустых ячеек.
- Печать: PVPrintAction в строке, компактный режим, классы col- для стилей.
Исправления
- Безопасность: правки по аудиту API, удалены небезопасные скрипты copy_package.php и rename_it.php.
- gtsAPILog: поля переименованы из зарезервированных слов MySQL (table_name -> log_table, action -> log_action).
- Пустая дата с фронта сохраняется как NULL, а не режется.
- Триггеры before-read получают правило и поля по ссылке и могут менять запрос.
- Битый UTF-8 в теле запроса больше не ломает JSON-кодирование.
-
Множество мелких фиксов CRUD, фильтров, деревьев и автокомплитов. 1.0.14-beta
Браузер файлов MODX. Галерея файлов gtsAPIFile. Дерево файлов.
1.0.12-beta
Исправление ошибок.
1.0.11-beta
Добавлен модуль UniTree
1.0.10-beta
Редактирование связанных таблиц через одну таблицу на фронте.



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