2 часа назад
Всё, что ты написал, можно уместить в одну фразу — работа ради работы. «Мне задонатили, я так и быть, что-нибудь сделаю, а там уж дальше сами, я этим ...
MiniShop3 - новости 17
Вчера в 19:22
всё, спасибо.
надо было понизить версию PHP -_//
[СДЕЛАЙ САМ] SendIt и MiniShop2 - заказ в 1 клик - быстро, просто и бесплатно. 66
24 октября 2025, 06:20
Есть форма на FormIt с полем типа файл — как это поле будет отображаться в гугл таблице? Смогут ли просмотреть этот файл все пользователи, кто имеет д...
GoogleSheets. Компонент для работы с Google таблицами. 26
23 октября 2025, 21:08
Сам отвечу, может кому-то пригодится.
В классе компонента и его плагине есть проверки статуса заказа. Если статус отличный от «новый», то там сраз...
Вопрос по mspYaPay 1
23 октября 2025, 13:18
Ну не знаю, только устарновил Sendit и у форм c AjaxForm появились уведомления
[СДЕЛАЙ САМ] Поиск на сайте по-быстрому 31
23 октября 2025, 07:34
на событие OnBeforeDocFormSave сработал этот вариант:
<?php
/**
* Plugin: Unique URL Checker
* Event: OnBeforeDocFormSave
*/
$resource = $scri...
Автопереименование повторяющегося URL 7
22 октября 2025, 10:41
Да, конечно, само собой ничего магически не произойдет.
Как массово добавить 301 редиректы? 5
19 октября 2025, 19:12
Спасибо большое за помощь!
MODx 3.х проблема с авторизацией через процессор "/Security/Login" 2
18 октября 2025, 17:08
Здравствуйте. Обязательно займусь доработкой, но в ноябре.
Thumb3x: Современная обработка изображений для MODX 3 28
18 октября 2025, 16:14
не для текущего ресурса. Хоть где выводи msGallery, будет выводить именно тот pagetitle ресурса(товара) к которому принадлежит файл.
Другое дело ес...
alt у картинок без "" msgallery - minishop2 21
Всего 125 227 комментариев
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. Ресурсы не кешируются.
Доп. учесть:
— Конфликт сессий
Функционал:
— Код / Действие: —
Примечания:?