6 часов назад
10 наверное многовато, но я думаю что часик подумать точно нужно, чтобы аккуратно всё сделать.
Как обновить модуль Easy Comm чтобы появилась возможность добавить файлы к отзыву? 6
20 сентября 2025, 15:07
Добрый день! Спасибо за описание)
Еще стоит упомянуть про вкладку Actionbuttons (в настройке MIGX-конфигурации) — тут надо отметить галочку additem —...
MigxDB - Делаем безграничное хранилище "объектов" в ресурсах. 10
20 сентября 2025, 09:13
ну как я и говорил, это наверное самый распространенный косяк)))
msOrderFields. Управление полями заказа. 48
19 сентября 2025, 18:18
Сложностей мне и так хватает. У меня gtsAPI используется в работе. А для документации и кейсов делать слишком длинные уроки разве разумно?
PVAdmin мини-админка для MODX 2.8 16
19 сентября 2025, 02:26
Какая версия MODX?
Selectel S3 + AWS S3 Media Source 3.0 как источник файлов для галереи изображений 2
19 сентября 2025, 01:47
Наталья,
так скажем шаблоны для разработки
MODX2
github.com/Boshnik/modExtra
MODX3
github.com/modx-pro/ModExtra3
Разработка нового дополнения 9
18 сентября 2025, 20:04
Есть ещё вариант дописывать vin в pagetitle плагином на сохранение ресурса
Вывод TV в дереве ресурсов 4
18 сентября 2025, 17:14
так, а в чем проблема во втором абзаце, не очень понял?
$modx->addEventListenerClosure(
'OnWebPagePrerender',
function (\MODX\Revolution...
Предложение нового механизма closure и слушателей событий в bootstrap неймспейсов MODX с приоритетам... 8
18 сентября 2025, 11:07
Ну логично. Скрипт делает выборку по таблице modResource, и там такого поля нет. Оно лежит в другой таблице msProductOption.
Попробуй писать msProdu...
Сортировка msfilter2 по msOption 1
Всего 125 096 комментариев
pagetitle, tv_vin
или pagetitle >br> tv_vin
не сработало
Проблема в том что карта у них строится без какой либо доп информации о плагинах, просто событие->список ID плагинов, уже отсортированных в sql запросе. То есть пересортировать ее без дополнительного запроса к базе не получится (ну или надо сохранять расширенную карту из базы при инициализации и потом при добавлении нового плагина пересобирать итоговую карту). Сейчас реализовано так, что сначала выполняются плагины из бд — и подвязанные к событию в админке, и подвязанные к событию в коде, потом все closure плагины. Вообще это больше не для того чтобы кто-то в админке вручную тыкал, а чтобы например при разработке пакета вы спокойно свой функционал раскидали по нужным событиям и не парились с созданием плагинов и привязкой/отвязкой событий при обновлении например.
Дмитрий, если у тебя получилось — поделись мануалом — скриншотом
И после просмотра примера возник новый вопрос: а если у меня будет большая функция или несколько функций или я хочу использовать целый класс в плагине, как тогда?
видимо, управлять приоритетом можно.
Попробуй писать msProductOption.flat_area вместо простого flat_area
Вроде не уязвимо :-). Почти все через pdoFetch идет. Только иногда использую сложное условие вроде (id IN (2,3) and (parent = 4 or parent IS NULL)) в where. Тогда… хм. проверю :-).
Код для проверки:
На запрос gettables.ru/test.html?id=4+OR+1 выдало:
Выдало все id страниц. То есть
Уязвимо для инъекций. Будем знать.
Этап:
OnMODXInit — Проверка сессии
Функционал: Проверка наличия данных в сессии
Код / Действие:
Примечания: На случай, если в сессию была вручную положена смена устройства или языка.
<cut/>
Этап
OnMODXInit — MobileDetect
Функционал: Определение типа устройства
Код / Действие:
Примечания: Определяется при инициализации MODX, чтобы не делать это на каждой странице. Если не удалось определить — ставим «mobile» как дефолт. Значение в сессии нужно для ручного переключения.
Этап:
OnMODXInit — Язык браузера
Функционал: Получение языка из заголовка
Код / Действие:
Примечания: Используется тот же плагин, что и выше.
Этап:
OnMODXInit — Плейсхолдеры
Функционал: Установка плейсхолдеров
Код / Действие:
Примечания: Нужно ли использовать session_write_close();?
Этап:
OnHandleRequest — Babel / Контекст
Функционал: Переключение контекста по URL
Код / Действие:
Примечания:
Нужно исключить mgr: Применяется сразу, т.к. сессия без перезагрузки не даст данные
Событие может меняться местами с другим — нужно повесить на оба
Номер сегмента — это порядковый номер контекста в URL
Этап:
OnLoadWebDocument — Переключение шаблона
Функционал: Установка шаблона в зависимости от устройства
Код / Действие:
Примечания: Меняем шаблон через специальный плагин, где заданы соответствия для mobile/desktop. Ресурсы не кешируются.
Доп. учесть:
— Конфликт сессий
Функционал:
— Код / Действие: —
Примечания:?