Александр Туниеков
С нами с 19 декабря 2015; Место в рейтинге пользователей: #114 часа назад
            
                Я сделал вот такой скрипт, который можно повесить на cron или запускать вручную при необходимости. Суть в том, что он проходит по всему сайту, генерир...            
        
        
            
            Подскажите, как с помощью StercSeoSiteMap создать карту со ссылками на друге карты ?                            1
                    
    01 ноября 2025, 10:54
            
                Каждое предработное утро я начинаю с чтение новостей. И первым всегда идёт MODX.pro.
От такого дайджеста на меня костюм-тройка чуть сам не налез, б...            
        
        
            
            Дайджест форума за октябрь 2025 глазами DeepSeek                            4
                    
    01 ноября 2025, 10:49
            
                Собственно переговоры прошли успешно, в понедельник передаст мне компонент, к концу месяца будет работать.            
        
        
            
            [CDEKIntegrate] Отправка заказов напрямую в CDEK                            18
                    
    30 октября 2025, 19:01
            
                Два дня проковырялся, пытаясь сделать по этому конфигу.
Один сайт сразу завелся, остальные вместо перехода на страницу редиректят на главную — чудо н...            
        
        
            
            Настройка конфигурации NGINX + PHP-FPM 7.4 на Ubuntu 22.04 + Fastpanel для MODX 2.8.7                            13
                    
    30 октября 2025, 17:34
            
                да да, могу пообедать?            
        
        
            
            Modx 2.8.8 + minishop 2 какая версия php поддерживается?                            13
                    
    28 октября 2025, 22:14
            
                Сам себе отвечу: так как FormIt умеет только прикреплять файл к письму, для чего он файл грузит во временную директорию, надо отдельным хуком переноси...            
        
        
            
            GoogleSheets. Компонент для работы с Google таблицами.                            27
                    
    26 октября 2025, 19:22
            
                всё, спасибо. 
надо было понизить версию PHP -_//            
        
        
            
            [СДЕЛАЙ САМ] SendIt и MiniShop2 - заказ в 1 клик - быстро, просто и бесплатно.                            66
                    
    23 октября 2025, 21:08
            
                Сам отвечу, может кому-то пригодится. 
В классе компонента и его плагине есть проверки статуса заказа. Если статус отличный от «новый», то там сраз...            
        
        
            
            Вопрос по mspYaPay                            1
                    
    
В файле core/components/msorderfields/model/msorderfields.class.php заменить строку 234 на
То есть поставить кавычки у rank. Вроде все работает. Если что-то не работает, то искать где rank без кавычек в sql уходит.
Если хочешь отблагодарить, то стоимость пакета 490р плюс час работы 1000р. Ссылка отправить деньги в профиле.
Для себя решил сижу на modx2.8, myqsl 5.7, php7.4 и не парюсь над этими новыми ихними замутами. Разобраться можно, но дорогостояще по времени и нервам.
То есть, экономия времени, как я считаю большая.
Ну extJs не ограничивает. Просто множество процессоров стандартная методика в MODX. Которая, как я считаю, является скучной и бессмысленой работой :-). Так то можно написать аналог gtsAPI для extJs. Только мне это не требуется. А вообще первоначально я вдохновлялся migx. gtsAPI для таблиц — это, грубо говоря, тот же самый migx для vue. А дерево UniTree это развитие этой идеи на деревья.
Да все что угодно и на более современном фреймворке (vue) и быстрее, когда въедешь, чем и на extJs и на других апи. За счет того, что не надо писать кучу контроллеров.
Только не понятно как документацию свести в удобную систему. Как всегда сперва hello word, а затем сразу строим самолет :-).
Вроде не уязвимо :-). Почти все через pdoFetch идет. Только иногда использую сложное условие вроде (id IN (2,3) and (parent = 4 or parent IS NULL)) в where. Тогда… хм. проверю :-).
Код для проверки:
На запрос gettables.ru/test.html?id=4+OR+1 выдало:
Выдало все id страниц. То есть
Уязвимо для инъекций. Будем знать.
Как правильно заметил @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 часа дебажить такую ошибку не так уж и долго :-).
Надеюсь, что ты все-таки воспримешь это от меня как фидбек :-)