![Fi1osof](/assets/images/avatars//7219a3951e6ac0b703e51e5b4c3c7a68-64.jpg?t=1739429224)
Fi1osof
С нами с 05 мая 2014; Место в рейтинге пользователей: #207 часов назад
Сайт восстановил. Но обратно дополнение установить не могу, выдаёт ошибку. Выше в сообщении то, что не работало. Перетаскивание стало работать после о...
msSortFields 16
Вчера в 22:23
Ну круто! Добавлю во FlatFilters поддержку этого компонента для организации поиска))) Спасибо!
Algolia для MODX с поддержкой PageBlocks и miniShop2 8
Вчера в 16:47
Список стоп-листов не скачивается. Компонент старый и не поддерживается?
Борьба с парсерами и ботами - antiBot 77
Вчера в 10:10
Впервые вижу человека, выбирающего сопоставление таблиц бд по критерию скорости, и при этом игнорирующего саму суть сопоставления (и сортировки если ч...
Правильное изменение кодировки БД на utf8mb4, для корректной работы эмодзи и т.п. 3
Вчера в 09:41
Подумаю как можно сделать.
Но на самом деле это очень плохая практика хранить по каждому результату логи
Нарушит работу сайта 100%
Быстро место за...
CrontabManager - работа из под console ssh 3
11 февраля 2025, 18:31
дополню где править
core/components/translitor/model/translitor.class.php
31 строка
[Translitor] - Альтернатива транслитерации псевдонимов 26
11 февраля 2025, 12:30
Примерно так
[[!pdoPage?
&element=`pdoResources`
&parents=`0` <!-- ID родителя -->
&pageVarKey=`page&#...
Как получить url следующей страницы пагинации от pdopage 6
10 февраля 2025, 22:02
Но сам чанк в админке создать всё равно придётся, это да.Нет, это не обязательно. Можно создавать только файловые чанки.
Как и сами блоки.С последн...
PageBlocks - мощный инструмент для MODX в стиле Laravel! 7
10 февраля 2025, 21:34
Спасибо. Подскажите пожалуйста, могу ли я пакет sendit-2.1.7-pl.transport.zip, который установил в MODX 2.88, установить локально в MODX 3?
Или как п...
Нет возможности загрузить SendIt на modx 3.1 а очень хочется 4
10 февраля 2025, 18:55
Сделал восстановление, пока всё норм. Благодарю за внимание.
Пропали картинки в товаре 2
Так и я не зарплате, если что.
Ну так надо было закрыть и все. ОК, я сам закрыл. И больше ничего не отправлю, даже трогать не буду.
Я конечно же все это проверял, но не достаточно глубоко. Попробовал как должно быть, не сработало, подумал никогда и не было. А оказывается было. Во второй вертке проверяет
а в 3-ей (на которой я и экспериментировал) уже вот так:
Но в коннекторе-то проверяется именно на 'security/login', чтобы выставить define('MODX_REQP', false);
И никак не думал, что сам Джейсон такую засаду сделает :)
Всегда считал его мегаконсервативным в плане изменения кода, а тут фигак и в продакшн.
Отправил простенький PR. Лечит проблему.
На нем вот и небольшой эксперимент с MODX-админкой делался: modx.pro/development/21732
А вот здесь и вовсе прописана обработка входящих запросов еще до вызова некста. Так что некст — это следствие, а не причина.
А некст я взял, потому что посмотрев имеющиеся решения на рынке, он больше всего понравился своей относительной минималистичностью и гибкостью в кастомизации.
Еще и по сути нет средств проверить авторизован ты или нет, то есть нет метода типа Security/User/GetCurrentUser. В чем проблема здесь? В том, чтобы понять когда ты авторизован, а когда нет. Единственный вариант тут — это просто реагировать на 401-ые ошибки (как это сейчас MODX делает). Но проблема тут в том, что у нас неоднозначная система доступов, и легко могут быть случаи, когда интерфейс загружен, а на определенный запрос нет прав. То есть ты запросил что-то, а в ответ получил 401-ый код серверный (что MODX делает много где) и это одновременно может быть признаком того, что ты не авторизован, хотя не гарантирует это (ты на самом деле авторизован, но нет прав на этот запрос и получил 401). В общем, все это делает работу с API неудобной и неоднозначной.
Нее, там совсем чуть-чуть и вообще про REST-контроллеры. Я же хотел заюзать нативные средства без каких-то движений на стороне кода сайта. Уточню разницу: РЕСТ-контроллер, это всего-лишь общий класс на чтение данных и отдачу ответа. То есть да, в нем есть возможность добавить логику, всякие вещи дописать и все, но все это на уровне кастомных контроллеров. Но если смотреть имеющиеся системные процессоры, то там много всякой логики, особенно на создание/редактирование всяких объектов (включая пользователей, ресурсы и т.п.). Гляньте хотя бы тот же процессор создания ресурса, который в том числе обрабатывает логику с ТВшками, группами ресурсов и т.д. и т.п. А еще в этих процессорах уже прописана проверка всяких прав. Переписывать все это на уровне кастомных контроллеров — дикий оверхед. Задача же была написать панель, которая не требует никаких лишних движений на стороне кода сайта, при этом максимально поддерживала бы базовые функции, да еще можно было бы что-то свое докрутить. По-хорошему в MODX на уровне ядра надо поправить возможность авторизацию без проверки уже имеющейся, а не как сейчас. Для особых параноиков можно системную настройку сделать, чтобы можно было это блокировать. Ну и текущего пользователя возможность получать. Тогда будет вообще ОК.
Какая именно? Не нашел.
В любом случае, я буду делать стилистически очень близкую к родной админке (просто потому что на нее буду смотреть), так что перейти не должны быть сложности. Но еще раз отмечу: пока что это только эксперимент. А там сделаем выводы.
Но как и сказал Иван, xPDO — это ядро MODX-а. Нельзя его просто так выпилить. Это не только формирование SQL-запросов и работа с БД, но и проверка прав, кеширование и много всего другого.
Давай я на днях немного поэкспериментирую и выложу что получится, и напишу какие подводные камни увидел и что мне не нравится. А там посмотрим. Если сообщество будет готово включиться в проект, тогда совместно может и поделаем. Если нет, то нет. Вообще, теоретически это должен быть очень полезный и интересный опыт и возможность лучше узнать MODX изнутри.
И тут два варианта:
1. Делать с использованием старого REST API как есть (то есть чисто интерфейсы).
2. Сразу прикручивать PHP+GraphQL, и тогда вообще АПИ взрослое будет и можно развиваться в сторону современных Headless CMS.