Всем доброго дня.
Достался сайт на стареньком Revo 2.2.10
Нужно было реализовать английскую версию. Сделал с помощью контекстов. Все хорошо, за исключением формы обратной связи. Она никак не работает.
На русской версии все ок, на английской версии не отрабатывает. Не выкидывает сообщений о незаполнености обязательных полей, а если все заполнено верно, то не редиректит на страницу с сообщением об успешной отправке письма, и не отсылает письмо на почту.
В логах никаких ошибок при этом нет. Контексты настраивал по этой статье: https://bezumkin.ru/sections/tips_and_tricks/2439/ вызов FormIt-а самый обычный: [[!FormIt?
&hooks=spam,email,redirect
&emailTpl=EmailReport
&emailTo=mymail@gmail.com
&emailSubject=Сообщение с сайта [[++site_name]]
&redirectTo=172
&validate=name:required, email:email:required, text:required:stripTags
]] <form class="form" action="[[~[[*id]]]]" method="post"><input type="hidden" name="nospam:blank" value="" />
Попробуйте для начала убрать параметр redirectTo. Из-за разных контекстов он может просто не получить этот документ и на этом и обломиться. Но это так, предположения. Глубоко копать не хочу, так как формит не интересен. P.S. обновите версию MODX-а хотя бы до последней 2.2+, а то взломают, замучаетесь.
Согласен с Николаем. Если вам важен редирект, создайте в другом контексте нужную страницу, которая будет иметь, естественно, другой id. Потом добавьте новый чанк для второго контекста с правильным редиректом. У меня так работает. Два контекста, но не en-ru, а просто два домена верхнего уровня. Николай, а что посоветуете вместо formit? И почему, если не секрет?
Мы использует form-процессор. Почему? Потому что это процессор, и его можно как из шаблона вызывать, так и через коннектор. Обработка стандартизированная — интерпретируй как хочешь. Еще и сразу работа с modCaptcha прописана.
Спасибо! Посмотрел. Буду заменять. Поначалу без костылей не обойтись, но когда начинаешь въезжать в логику работы, хочется ускориться :)
Установите ShopModxBox и посмотрите как там форма обратной связи работает. Используется расширяющий процессор.
Именно так и сделано. В контексте EN создана страничка для редиректа. Убрал redirectTo и из хуков redirect, все равно не хотят отправляться письма. К стати, щас обратил внимание, фоска вообще не отрабатывает никак, даже не выскакивают ошибки, если не заполнены обязательные поля. Просто перезагружается страничка, и форма очищается. Коды и вызовы фосок одинаковы для обоих контентов. В русском все работает, в английском нет.
Все, заработало. Спасибо за ответы. Подсказали прописать вот так: <form class="form" action="" method="post"> (до этого было action="[[~[[*id]]]] "), письма начали уходить, форма проверяется. Редирект работает.