2 часа назад
gtsAPI и PVTables заняло год и то все что хочелось не реализованноинтересно, а не быстрее ли было бы перенести весь сайт с требуемым функционалом на п...
Плюсы и минусы Vue и gtsAPI 10
5 часов назад
ну тогда groupby и having«query» принимает все параметры pdoFetch и в нем есть и groupby и having. Пример навскидку:
"query":{
&quo...
Кейс gtsAPI. CRUD пользователей на фронте 2
Вчера в 20:31
Правильный вариант из текущей документации такой:
{set $condition = 1}
{switch $condition}
{case 0, 1, 2}
сработае...
Конструкция switch case без break в Fenom 6
Вчера в 13:39
Моя кофейная гуща говорит о том, что это код html и там есть смайлики, а кодировка бд не utf8mb4.
Modx Revo режет код HTML 2
23 ноября 2024, 11:51
Отличное дополнение, спасибо!
Подскажите, как организовать файл если стоит msOptionsPrice2 привязан к опции size там может быть много позиций с разн...
[YandexMarket2] интеграция с msOptionsPrice2 1
23 ноября 2024, 00:42
Еще снова вернулась проблемка, после выбора способа доставки почтой РФ — появляется стоимость доставки, но она «прилипает» и не исчезает после переклю...
Расчет стоимости доставки msRussianPost 11
22 ноября 2024, 21:57
Лучше деинсталировать и установить новую версию. Там полностью переписан JS.
ms_CDEK2 пропал? 5
22 ноября 2024, 20:33
Фильтрация как правило предполагает точное совпадения значений, а тебе нужен поиск.
mFilter2 фильтрация tv 1
22 ноября 2024, 19:55
Все исправилось, после замены на 'parents' => $_modx->resource.id
Помогите найти ошибку в шаблоне, теги 13
22 ноября 2024, 09:31
А кто подскажет, как в форму Создания/Редактирования ресурса, через ms2Form, добавить возможность выбирать несоклько параметров в одном TV?
Ну то-ест...
Создание ресурсов из фронтенда сайта, зарегистрированными пользователями. 4
Единственно, что пока не понимаю: как взять содержимое из TV текущего ресурса, который реализован с помощью MIGX?
Понимаю, что «так же, как и у обычного тв». Но если не трудно, то можно помочь с этой строчкой кода?
Я не понимаю как он будет удалять? Какой-то регуляркой? Если не трудно, подскажи, пожалуйста.
Можно ли как-то их предупреждать, что скопированный текст содержит не допустимые символы?
Можно ли как-то предупредить, через плагин, чтобы такой не копипастился в TinyMCE. Чтобы очищал сразу или предупреждение выдавал?
Вот решение:
github.com/modx-pro/pdoTools/issues/329#issuecomment-1126893229
Есть идеи?
Как я понял, ты вызываешь сниппет внутри pdoTools (из-за знака +), верно?
Лично я использую pThumb
Получилось?
Хорошая идея. Возможно в этом платном компоненте ты сможешь почерпнуть для себя идеи modmore.com/contentblocks/
Я борюсь таким образом:
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, как смог так и написал, поэтому большая просьба помочь хорошо доработать данный сниппет/хук и поделиться им здесь.
Отправил.
Нет, не совсем так.
3 страницы с 3мя разными формами.
Заполнить в течение года все 3 формы — это обязанность пользователя.
Если он уже заполнял форму (например, форму номер 1) то, вместо формы (чанк с формой будет скрыт) он увидит «Спасибо, Вы уже заполняли эту форму».
Не очень сумбурно объяснил? :))
Можг бы кусочек кода-примера с curl привести?
Знаком с curl, но только для скачивания файлов.
Как передать 2 формы curl даже не представляю.
Или как искать в Гугле?
Спасибо за ответ.
FormIt2db, оказывается, создает автоматически, если его еще нет, xPDO объект, папку со схемами, моделью.
В базе делаешь кастомную табличку с этими тремя полями и теперь всё сохраняется туда.
Сделал прекхук, который сам подставляет нужные данные для запоминания пользователя.
Но у меня теперь другая проблема.
Сама форма — это форма с другого сайта, в action стоит:
Вторая форма Как сделать так, чтобы при нажатии на отправить в первой форме (или второй) — данные отправляются и на внешнюю форму, и в базу (вторая форма)?
Пока уходят данные только той формы, чью кнопку Отправить я нажал.
Есть идеи?
webP + phpThumbOff, все работает как швейцарский нож уже 10 лет.
@Сергей Шлоков, у меня нет возможности отправить на поддержку через кнопку выше. Я могу отправить тебе на PayPal?