epic
С нами с 16 марта 2024; Место в рейтинге пользователей: #1004- Заметки 57
- Комментарии 13
04 апреля 2026, 18:58
пробовал — ошибка та же
кстати MODX 2.7.2 — подключается нормально
кстати MODX 3.2.0 — не нормально
Не могу подключить репозиторий 3
01 апреля 2026, 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
тут проверяется есть ли в названии модели марка
в твоём случае надо выводить каждой модели в дата атрибут название марки и проверять есть ли у текущей опции дата атрибут с такой маркой. Как вариант.
1) Копируем файл и называем его .
2) В этом файле везде заменяем на 3) Копируем файл и называем его 4) В html коде сортировки указываем 5) В файле на 76 строчке меняем
на
Радуемся
Я борюсь таким образом:
1. Проверяю в сниппете для FormIt с помощи регулярки на наличие ссылки типа site.com И email типа name@mail.com в поле текстового сообщения + в каждом поле такую проверку делаю (Имя, Телефон, Название фирмы, все поля чекаю). Если обнаружена ссылка, то возвращаю false и сообщение, что «Ссылки или электронные адреса в данном поле не разрешены. Вы можете приложить Word, Excel, PDF или текстовый файл с подробным описанием, ссылками и email.».
2. Использую сниппет csrfhelper:
А в вызов FormIt добавляю хук csrfhelper_formit.
3. Разумеется, добавляю простейшую проверку на пустоту скрытое поле URL (можно назвать поле любым человекоподобным словом) 4. Добавляю таймер на страницу, который не разрешает отправлять форму, если ты менее 15 секунд на странице (обычно спам-боты отправляют спам моментально после загрузки страницы, менее чем за 1-5 секунд) и показываю пользователю сообщение об ошибке «Слишком быстро нажата кнопка Отправить. Подождите, пожалуйста, 15 секунд и отправьте еще раз.»
В форме Fenom-тэг с текущим временем в формате UNIX. Сравниваем его в антиспам-сниппете.
5. На всякий случай вырезаю все html-тэги из всех полей :stripTags
6. В доработке хук, который чекает прилагаемый файл через форму: только pdf, word, excel, txt, zip, png, jpg; не больше 25 мегабайт (вроде как стандартное ограничение всеми почтовиками). Если проверка не пройдена, то показываем вежливое сообщение, что мы принимаем только такие файлы и не больше 25 мб.
7. Не забываем про проверку на обязательность заполнения полей со стороны клиента с помощью тэга required. А также проставляем все необходимы типы данных в инпутах: type=«email», type=«number» или же type=«text» во всех полях!
Мое мнение — самое главное вернуть очень понятный человеку и вежливый ответ, что здесь ссылки не разрешены в целях борьбы со спамом, Вы можете приложить файл со всеми ссылками и адресами.
Сам сниппет antiSpam:
В самой форме плейсхолдеры для вывода человекопонятных ошибок:
До этого у меня была всего-лишь одна проверка regExp на наличие ссылки и email в поле Сообщения (message). Спама почти не было, но стал приходить спам типа Buy our viagra on usa-pharma.shop, пропускались такие ссылки. Более длинная регулярка уже иногда блочила любой текст, если юзер пишет сообщение и после точки сразу пишет слово нового предложения.
Добавил проверку на 15 секундное ожидание (человеку просто не реально раньше 15й секунды заполнить все поля и отправить форму). Можно поставить 5 секунд.
После этого стали приходить сообщение только от человеков, никакого спама.
Не отловленные ошибки надо бы логгировать (у меня был этот кусок кода для логгирования не отправленных форм через FormIt, но не могу найти, он в старых хуках был).
Ну и можно по IP блочить вдобавок, как выше уже предложено.
Я не очень силен в PHP, как смог так и написал, поэтому большая просьба помочь хорошо доработать данный сниппет/хук и поделиться им здесь.
В результате выводится первая миниатюра {$small} в pdoNeighbors
Может кому-то будет полезно.
Не дадим modxУ погибнуть!!!
1. в папке модели должен быть metadata.mysql.php, хотя бы
с таким содержимым:
Иначе ловим ошибку.
2. В основном классе, метод инициализации есть, но не вызывается,
и там же pdo подключается, но не получает конфиг, следует
параметры в него не передашь, можно исправить вот так:
3. Ключ (хеш) конфигурации корзины, при ajax запросе передается,
но нинциализация не происходит, это значит как минимум pdo не получит конфиг из пункта 2.
Для этого инициализация может быть такой:
А в handleRequest:
Ну и в сниппеты и плагины после успешной подгрузки класса:
4. Чанк элемента в корзине содержит:
Ошибкой было называть имя msmcd_id вместо id, так как это может сломать
работу других компонентов, висящих на событиях изменения
товаров в корзине. Да и префикс msmcd_ не используется ни где.
5. При удалении товара вместо Cart.remove.response.success
нужно использовать:
Тогда будет правильно удалять товары.
Вроде после такого напильника, стало работать как нужно. Желаю творческих успехов!
Может кому пригодится, если нужно сделать сортировку по опциям товара miniShop2:
2 поля size_h и color_id, которые нам надо отсортировать
2) т/к availability (из инфы от автора вопроса) для товара добавлено через систему плагинов minishop2 которую также в удобной форме реализует дополнение msFieldsManager то код примет следующий вид