Сложный вопрос. Застали в расплох. Как правильно ответить долго думать. Попробую ответить как смогу. Не обессудте.
Как правильно заметил @Futuris, у нас сложный технологический процесс, и запрограммировать множество технических параметрев деталей на extJs очень долго. Для примера, я в начале года пытался перевести тикеты на modx3. Так в них 50 процессоров для разных действий (https://github.com/tuniekov/Tickets/tree/master/core/components/tickets2/src/Processors). gtsAPI устроен так, что ему не нужны куча контролеров. Прописываешь настройки доступа и отображения для таблицы и всем процессом управляет 1 уже написанный контроллер. Это в разы сокращает время написания приложения. Хотя и вносит некоторые ограничения :-). Так вот, чтобы прописать нужный нам функционал на extJs, наверно бы потребовалось написать 500-1000 процессоров.
В примере админки на Vue, PVAdmin, я написал в основном, только нужный нам функционал для менеджеров и инженеров ИТР. Полностью повторять админку MODX у меня задача не стояла. Для стандартных целей админка MODX меня полностью устраивает. Админка PVAdmin, в текущей реализации, нужна только если програмировать сложный функционал или нет желания пускать пользователей в стандартную админку MODX.
Но программировать на Vue с gtsAPI, по моему, гораздо проще, чем на extJs. Если писать приложения вроде Tickets для PVAdmin, то может быть, со временем админка на Vue будет удобнее для обычных сайтов. Пока Tickets для PVAdmin не планирую, но есть некоторый соблазн :-).
Как ими воспользоваться?
Я пишу документацию временами и почти не получаю обратную связь от других разработчиков и пользователей. Так что сейчас документация не слишком хороша. Надеюсь, это исправиться. Преимущества Vue с gtsAPI в том что можно быстрее и проще програмировать компоненты для PVAdmin.
Мои заметки по gtsAPI: UniTree новые возможности gtsAPI-PVTables Кейс gtsAPI. CRUD пользователей на фронте gtsAPI — Универсальное API для MODX Введение в PVTables
Компонеты для gtsAPI проще писать на основе https://github.com/tuniekov/PVExtra. В readme инструкция.
Сейчас изучать gtsAPI наверно проще по примерам: https://github.com/tuniekov/OrgStructure https://github.com/tuniekov/PVAdmin/.
Основные файлы:
В файле _build\configs\gtsapipackages.js настройки таблиц для gtsAPI. По ним gtsAPI и PVTables формируют доступное API и таблицы, деревья, формы на фронте.
В файле core\components\pvextra\model\schema\pvextra.mysql.schema.xml MODX схема базы данных
В файле core\components\pvextra\model\pvextra\pvextra.class.php класс MODX компонента. Триггеры и кастомные действия обращаются в него.
src/App.vue код приложения на vue.
В папке https://github.com/tuniekov/PVExtra/tree/main/docs документация ИИ для ИИ. Часто в нейросеть пишу промпт: Прочитай docs/use_gtsapipackages.md и напиши конфиг для таблицы tableName (например, modUser или modUserProfile).
Надеюсь хорошо ответил… Буду рад если gtsAPI вас заинтересует.
Как правильно заметил @Futuris, у нас сложный технологический процесс, и запрограммировать множество технических параметрев деталей на extJs очень долго. Для примера, я в начале года пытался перевести тикеты на modx3. Так в них 50 процессоров для разных действий (https://github.com/tuniekov/Tickets/tree/master/core/components/tickets2/src/Processors). gtsAPI устроен так, что ему не нужны куча контролеров. Прописываешь настройки доступа и отображения для таблицы и всем процессом управляет 1 уже написанный контроллер. Это в разы сокращает время написания приложения. Хотя и вносит некоторые ограничения :-). Так вот, чтобы прописать нужный нам функционал на extJs, наверно бы потребовалось написать 500-1000 процессоров.
В примере админки на Vue, PVAdmin, я написал в основном, только нужный нам функционал для менеджеров и инженеров ИТР. Полностью повторять админку MODX у меня задача не стояла. Для стандартных целей админка MODX меня полностью устраивает. Админка PVAdmin, в текущей реализации, нужна только если програмировать сложный функционал или нет желания пускать пользователей в стандартную админку MODX.
Но программировать на Vue с gtsAPI, по моему, гораздо проще, чем на extJs. Если писать приложения вроде Tickets для PVAdmin, то может быть, со временем админка на Vue будет удобнее для обычных сайтов. Пока Tickets для PVAdmin не планирую, но есть некоторый соблазн :-).
Я пишу документацию временами и почти не получаю обратную связь от других разработчиков и пользователей. Так что сейчас документация не слишком хороша. Надеюсь, это исправиться. Преимущества Vue с gtsAPI в том что можно быстрее и проще програмировать компоненты для PVAdmin.
Мои заметки по gtsAPI:
UniTree новые возможности gtsAPI-PVTables
Кейс gtsAPI. CRUD пользователей на фронте
gtsAPI — Универсальное API для MODX
Введение в PVTables
Компонеты для gtsAPI проще писать на основе https://github.com/tuniekov/PVExtra. В readme инструкция.
Сейчас изучать gtsAPI наверно проще по примерам:
https://github.com/tuniekov/OrgStructure
https://github.com/tuniekov/PVAdmin/.
Основные файлы:
В файле _build\configs\gtsapipackages.js настройки таблиц для gtsAPI. По ним gtsAPI и PVTables формируют доступное API и таблицы, деревья, формы на фронте.
В файле core\components\pvextra\model\schema\pvextra.mysql.schema.xml MODX схема базы данных
В файле core\components\pvextra\model\pvextra\pvextra.class.php класс MODX компонента. Триггеры и кастомные действия обращаются в него.
src/App.vue код приложения на vue.
В папке https://github.com/tuniekov/PVExtra/tree/main/docs документация ИИ для ИИ. Часто в нейросеть пишу промпт: Прочитай docs/use_gtsapipackages.md и напиши конфиг для таблицы tableName (например, modUser или modUserProfile).
Надеюсь хорошо ответил… Буду рад если gtsAPI вас заинтересует.
У Василия в минишопе обновления версии js скриптов через гет-параметы встроенно. Меняется версия минишоп — меняется гет-параметр. Я так же делаю. Тебе нужно подумать, чтобы при обновлении js они автоматически в браузере обновлялись. А то сделаешь ты обновление mscdek через полгода и на всех сайтах у их постоянных клиентов mscdek отвалится и владельцы сайтов потеряют клиентов. Веская причина?
Искал в чем причина ошибки 4 часа. ctrl+shift+r я всегда делаю и стем что оно не срабатывает первый раз столкнулся. Так что даже не подозревал, что скрипты старые в браузере. Пришлось дебажить и изучать mscdek и sendit. Как они работают. В итоге разобрался, что header x-sipreset не верный, нашел где он отправляется, а потом уже проверил что за js в установочном пакете.
4 часа дебажить такую ошибку не так уж и долго :-).
Надеюсь, что ты все-таки воспримешь это от меня как фидбек :-)
Помогла эта галочка
Но клиенты у кого за неделю скрипты закешировались это не поймут.
@Артур Шевченко можешь механизм обновления скриптов mscdek и sendit предусмотреть?
А то корзина ложиться и не понятно из-за чего. Мы 3 часа пропарились из-за этого.
У нас что-то при установке не прописалось. Раздела minishop2\ms2_delivery_cdekhandler нет в системных настройках. Подскажи что там должно быть?
У нас api-maps.yandex.ru/v3/?apikey=*** заработало когда поставили ограничение по домену.
Я в файле core\components\minishop2\model\minishop2\msdeliveryhandler.class.php
Закоментировал $this->modx->getOption('log_deprecated')
И заработало. Не понятно Эта ошибка из-за наших особенностей или что-то неправильно в msdeliveryhandler. По идее файл же не класс и $this-> вообще не должен присутствовать О_О.
Без нее корзина ложиться наглухо. Даже если никакие доставки сдек не включены.
Теперь буду знать, что в степени бардака в програмировании нам есть куда стремиться :-).
Только карта ПВЗ так и не заработала. В консоле ошибки
Понять, где должна происходить инициализации ymaps3, не получилось. Баг разработчика какой-то.
@Артур Шевченко поправь плиз.
Без проблем. И даже копирайты не обязательно.
Проблема в том, что MODX хранит чанки, сниппеты и т.д. в базе. К базе просто так гит не подключишь и сделать синхронизацию сложно. Сейчас я пишу компоненты в которых все до установки в файлах и использую обычный гит. И версии изменений есть и обновить боевой сайт не проблема. И githelper не нужен.
Включил в модсторе changepack. Если надо пользуйтесь.
И даже у меня пока есть время и мне интересно взяться за такую задачу. Если вам интересен интерфейс минишопа на PVTables напишите мне. Посмотрим как вы видете задачу. Может возможно сделать, а может еще рано. Например, файлового менеджера в PVTables еще нет.
П.С. Хочестя в тикеты при сохранении комментария добавить кнопку «проверить на ошибки» и при нажатии на нее проверить комментарий на ошибки в нейросети сохранить проверенный вариант. Но пока еще не настолько хочется чтоб взять и сделать :-)