Вчера в 18:15
У меня на регистрации словил ошибку.
При это пользователь явно создался, т.к. повторно создать пользователя на ту же самую почту не дает.
При повто...
[MAX bot] отправляем сообщение в бот MAX на изи 7
30 марта 2026, 20:49
PHP >= 8.2 должно быть. У MS3 минимум 8.2
[msCDEK] Расчёт доставки СДЭК в miniShop3 1
27 марта 2026, 14:49
Не получается установить pbQuiz. Требует pageblocks хотя я его установил. В чём может быть проблема?
pbQuiz — гибкий компонент квизов на контроллерах PageBlocks 4
27 марта 2026, 13:13
Все ок, почему то не выполнялся Cron на хостинге, решил через провайдера.
msImportExport 2.0 129
26 марта 2026, 21:13
С валидацией по шагам стало понятней, спасибо, с событием change после загрузки файла буду разбираться.
Странный баг в SendIt (квиз+загрузка файлов) 2
19 марта 2026, 15:28
Николай, прежде всего — вы молодец.
А про кеширование — можно пойти по правилу Парето.
То есть дать возможность закешировать самое частое — это ...
mFilter 1.2.0 - улучшенное кеширование и скорость 2
15 марта 2026, 20:35
Minishop2 это завершенная история. Архив. Крайне сомневаюсь, что в него будут добавляться какие то изменения. Это просто некому делать. Заинтересованн...
Порядок значений опций товара 10
Сколько времени на подготовку дополнения потратил ты — никого не волнует.
на
Почитать можно здесь. А про работу с джоинами pdoTools — здесь.
Tickets изначально не рассчитывался на работу без авторизации. Потом я это дописал, но не везде, как видно.
Скорее всего, из-за особенностей работы плейсхолдеров, фильтр применяется к тегу, когда он еще пуст. А когда ты убираешь md5 и страница ренедрится полностью, email туда успевает подставиться. То есть, значение в тег попадает уже после обработки фильтром.
Можно попробовать вызывать его просто некэшированным [[!+email:md5]].
Исходник фильтра в MODX выглядит так:
Ошибаться там просто негде.
pdoTools — специальная библиотека, и все сниппеты работают исключительно с её помощью.
Её используют miniShop2, mSearch2, Tickets, BannerY и другие дополнения. Думаю, тебе придётся постараться, чтобы не установить pdoTools рано или поздно себе на сайт =)
Автогенерация из опций по умолчанию делает только чекбоксы, а несколько фильтров полю указать нельзя.
Поэтому придётся делать свой кастомный класс фильтрации и там колдовать.
С него и почта лучше доходит, и спам фильтруется, и при высокой нагрузке тебя сразу отключат и предупредят.
Но показываются именно загрузки, а не покупки. То есть, чем больше новых версий дополнения — тем больше закачек.
Тогда нужно писать свой сниппет, наверное, который будет корректно реагировать на передаваемые из mFilter2 параметры, типа sortby, parents, returnIds и еще не знаю какие — нужно смотреть исходник.
Например, там есть вот такие места:
Это проверка ресурсов, которые сниппет может вывести.
Наверное, проще будет создать свою модель как положено.
По умолчанию там mSearch2, но часто используются pdoResources или msProducts.
Получить эти параметры в классе фильтрации можно через $this->config, например:
А теперь представь, что если бы существовал способ делать так, как ты хочешь? Выходит, что любой сайт мог бы выполнять команды от root и в чем тогда защита? Злоумышленник ломает сайт и получает доступ ко всему серверу, ко всем сайтам и файлам.
Так что, ответ прост — это невозможно.
Процесс, который создаёт сайты должен работать не как обычный сайт. Это или отдельный демон на Python, как у нас на хостинге, или отдельный процесс на PHP, но запущенный от root и защищенный по IP от случайного коннекта. Или просто консольные скрипты, как в моей инструкции.
Когда я делал тестовые сайты, там использовались именно эти скрипты, которые запускались по расписанию раз в n минут.
То есть, юзер заходил на обычный сайт, заказывал себе тест, запрос сохранялся в БД, а сервер уже раз в 10 минут от root запускал скрипт, который проверял заказы в БД, создавал тестовые сайты и отправлял на email уведомления об этом.
Ты можешь сделать так же.