Процессоры и коннектор
Все запросы панели идут в assets/components/prism/connector.php → штатный
modConnectorRequest → процессор. Аутентификация и CSRF — стандартные механизмы MODX.
Действие — это имя класса
Параметр action содержит полное имя класса процессора, а не путь к файлу:
action=Prism\Processors\Mgr\Item\GetList
Так процессоры остаются автозагружаемыми классами PSR-4 без карты файлов. Дополнение регистрирует свои процессоры тем же способом — отдельный коннектор не нужен.
CSRF: заголовок modAuth со значением MODx.siteId.
Что есть
| Пространство | Процессоры |
|---|---|
Mgr\Item\ | GetList, Get, Update, Remove, Sort, Toggle, Rethumb |
Mgr\Upload\ | Init, Chunk, Finish |
Mgr\Video\ | Create |
Mgr\Embed\ | Create |
Mgr\Tag\ | GetList, Create, Update, Remove |
Mgr\Preset\ | GetList, Create, Update, Remove |
Mgr\Field\ | GetList, Create, Update, Remove |
Mgr\Output\ | Get, Save |
Mgr\Thumbs\ | Clear |
Mgr\Status\ | Get |
Mgr\ | Ping |
Требуемые права — в Правах доступа.
Права — не вся проверка. Процессоры, которые берут id элемента или ресурса прямо из запроса,
сверяются ещё и с политикой родительского ресурса: view для чтения, save для изменений.
Менеджер, ограниченный группами ресурсов, не доберётся до чужих медиа, подставив id. Массовые
операции (Remove, Toggle, Rethumb) пропускают недоступное, а не отказывают целиком.
Загрузка частями
Три шага, потому что на shared-хостинге upload_max_filesize обычно меньше файла:
Upload\Init— заводит сессию: имя, размер, число частей. Проверяет расширение и лимиты до передачи данных.Upload\Chunk— принимает одну часть и дописывает её во временный файл.Upload\Finish— собирает файл, проверяет MIME по содержимому, пересобирает растр, считает хеш по результату и создаёт элемент.
Пересборка — не оптимизация, а граница доверия: на диск попадают байты, которые сгенерировал сервер, а не присланные. Подробнее — в Изображениях.
Брошенные сессии старше суток убирает cache:clear --uploads.