1 час назад
Класс! Часто непонятно как искать причины поломок или откуда берутся сообщения. Это прям мучение. Посмотрим как работает новый компонент. Делаю у себя...
Хватит логгировать как в каменном веке 🪵 4
1 час назад
Кстати вопрос возник. Раздражало что для базовой локализации надо было делать версию ru — т.е. создавать дублирование информации из полей и доп.полей....
Localizator3 для MODX 3: перевод полей и TV без отдельного context на язык, Vue 3 + PrimeVue 2
22 июня 2026, 23:07
Стоит подумать и добавить, так как 100% потребуется как-то модифицировать данные из 1С. Частый кейс это не соответствие категорий на сайте и категорий...
CommerceBridge 1C — двусторонняя интеграция 1С с MODX 3 и miniShop3 по CommerceML 2. 7
20 июня 2026, 17:54
Только что столкнулся с таким на modx3, ранее 1 раз видел на modx 2.8 — не было времени и мотивации разбираться.
Но проблема есть и она старая.
Кл...
Не срабатывают статичные плагины 1
19 июня 2026, 23:14
Обновление компонента
История изменений MaxNotify 3
1.2.0-pl
добавлен канал max в Центр уведомлений miniShop3;добавлена отправка из Центра дл...
MaxNotify3 3
19 июня 2026, 21:05
Копать надо в браузере. На вкладке сеть, если ответ 500, тогда в логи сервера.
Зависает корзина минишоп2 1
16 июня 2026, 15:00
Последний FormIt + последний FetchIt = белый экран
Последний pdoTools + последний MODx v3 = белый экран
FormIt 5.2: нативный AJAX и reCAPTCHA v3 5
Всего 125 986 комментариев
У Fenom больше возможностей. Например, в параметрах можно указать число, массив, сделать конкатенацию. Также различные управляющие конструкции. Этого нет в MODX синтаксисе.
А банальный перевод тега на Fenom (просто чтоб было) ничего не даёт. Даже хуже — MODX теги работают лучше и меньше нагружают парсер.
Чем так цвет фона душу раздерает?) Мне в дизайне всё нравится))
И если можно, цвет фона менее душераздирающий. )
Могу поверстать если требуется помощь.
Т.е. я его подключаю, переношу папку Templates в корневую директория ядра и прописываю новый путь с настройках компонента.
Затем раскомменчиваю дефелтный роут, ведущий на Главную страницу (так же как ина любую другую — результат тот же). После этого на новой установке срабатывает подмена шаблона MODX на ZoomX.
Но почему-то на действующих сайтах компонент не срабатывает. Настройки в принципе те же.
Raw data for import:
Array
(
[0] => 0006
[1] => ���
[2] => 2000
[3] => 575
)
Включен translit, но всё равно не создается название страницы. Возможно, нужно как-то по-особому сохранять csv?
Тэвэха news-type теговая и значения приходят туда правильные
Я борюсь таким образом:
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, как смог так и написал, поэтому большая просьба помочь хорошо доработать данный сниппет/хук и поделиться им здесь.