Форма обратной связи – функция, которая должна присутствовать практически на каждом нормальном сайте. Ведь, если сайт сделан для людей, он должен давать им возможность связаться с автором(администратором), не прибегая к для этого каким-то особым ухищрениям. Все должно быть максимально просто и доступно. Joomla имеет в себе систему контактов, но она так устроена, что разобраться бывает далеко не просто, не говоря уже про ее настройку и подгонку под дизайн. Сегодня я расскажу об одном бесплатном модуле, позволяющем буквально в несколько кликов организовать форму обратной связи для сайта.
Внимание! Статья устарела. Обновленная версия находится здесь .
Также вы можете почитать о том, как создать сложную форму обратной связи при помощи SEBLOD.
Модуль называется Rapid Contact и, как следует из названия, позволяет создать форму быстрой обратной связи. Скачать его можно по этой ссылке. А вот страничка в каталоге расширений Joomla.
Устанавливается модуль через менеджер расширений Joomla. В установке нет ничего необычного.
Окно настроек Rapid Contact выглядит следующим образом:
Здесь мы видим следующие опции:
Параметры e-mail
– Email Recipient (получатель сообщения) – здесь нужно указать e-mail администратора или человека, который будет получать сообщения, отправляемые через форму обратной связи.
– Mail From Name (имя отправителя сообщения) – данный параметр определяет отправителя сообщения, но не конкретного человека, а сайт. Т.е., например, отправитель: «Форма обратной связи компании «Рога и копыта»». Текст, задаваемый в этом поле будет видеть только получатель сообщений, email которого задан в предыдущей опции.
– Mail From Email (email отправителя сообщения) – здесь можно задать e-mail, с которого будут приходить сообщения. Точнее просто графу сообщения «От:».
Параметры текста
– Email Label (заголовок поля email) – заголовок поля email формы обратной связи. Здесь нужно указать текст, в поле рядом с которым отправитель будет вводить свой email-адрес.
– Subject Label (заголовок темы сообщения) – заголовок поля темы обратной связи. Здесь нужно указать текст, в поле рядом с которым отправитель будет вводить тему своего сообщения. Лично для меня тема была не так важна, ее можно понять и из письма. Поэтому я переименовал данный заголовок в «Ваше имя». Таким образом, я знаю, как обращаться к человеку при ответе на его сообщение.
– Message Label (заголовок тела сообщения) – заголовок тела сообщения обратной связи. Здесь нужно указать текст, в поле рядом с которым отправитель будет вводить свое сообщение.
– Button Text (текст кнопки отправки) – текст, который должен быть на кнопке отправки сообщения.
– Thank you text (благодарственный текст) – текст, который показывается пользователю после того, как сообщение отправлено. Например: «Спасибо за сообщение. В ближайшее время мы с вами свяжемся.»
– Error page text (текст страницы ошибки) – данный текст показывается пользователю в том случае, когда отправка сообщения не удалась по какой-либо причине. Например: «Ваше сообщение не было доставлено. Пожалуйста, попробуйте отправить его снова.»
– No Email Error Message(текст сообщения о невведенном email)– данный текст показывается пользователю, когда он не ввел email.
– Invalid Email Error Message (текст сообщения о неправильном email) – данный текст показывается пользователю, когда он ввел email в неправильном формате.
– Small Intro Text (небольшой вводный текст) – небольшой текст, показываемый перед формой ввода сообщения.
Параметры цвета и размера
– Text Color (цвет текста) – цвет текста из опции «Thank you text».
– Error Text Color (цвет текста ошибки) – цвет текста из опции «Error page text».
– Email Width(ширина email) – ширина формы ввода email.
– Subject Width (ширина темы) – ширина формы ввода темы сообщения.
– Message Width (ширина сообщения) – ширина формы ввода сообщения.
– Button Width (ширина кнопки) – ширина кнопки отправки сообщения.
Параметры URL
– Exact URL (точный URL) – эта и следующая опции относятся к сайтам, использующим протокол https. Вдаваться в подробности не буду, т.к. нужно рассказывать про https в целом. Кто знает, тот поймет сам. Остальным следует оставить эти опции как есть.
– Disable HTTPS (отключить HTTPS)
– Fixed URL (фиксированный url) – если выбрано «Да», будет перенаправлять пользователя после отправки сообщения по адресу, указанному в следующей опции.
– Fixed URL Address (url перенаправления) – адрес, на который будут перенаправляться пользователи после отправки сообщения.
Параметры защиты от спама
– Enable Anti-spam (включить анти-спам) – активация защиты от спама «Вопрос - ответ».
– Anti-Spam Question(вопрос анти-спама) – вопрос, на который должен ответить пользователь для отправки сообщения.
– Anti-Spam Answer(правильный ответ на вопрос анти-спама) – правильный ответ на вопрос, заданный выше.
– Anti-Spam Position(расположение анти-спама) – расположение формы анти-спама: перед или после формы сообщения.
По поводу анти-спама хотелось бы отметить следующее: вопрос должен быть как можно проще для человека и как можно сложнее для машины. Ответ крайне желательно делать числом и указывать в вопросе, в какой форме должен быть дан ответ.
Публикация формы обратной связи Rapid Contact на отдельной странице.
Теперь еще один важный момент. Думаю, многие хотели бы использовать для формы обратной связи отдельную страницу. Это просто сделать, благодаря плагину вставки модулей в контент. Итак, последовательность действий следующая:
- Создаем новую статью Joomla, написав в ней любой приветственный текст для формы обратной связи. Публикуем статью вне разделов (либо в специальном разделе) и не показываем на главной странице.
- В меню создаем новый пункт: «Статьи» –> «Статья» –> «Стандартная страница статьи», называем его, например, «Обратная связь», и выбираем статью созданную в п.1. Публикуем и сохраняем.
- Заходим в менеджер плагинов, находим плагин «Content - Load Module»или«Загрузка модулей в статьи»и активируем его.
- Заходим в менеджер модулей, затем в настройки Rapid Contact и в поле «Положение» вписываем любое название; главное, чтобы оно не совпадало ни с одной из существующих в шаблоне позиций модулей. Вписываем, например, «feedback123»
- Далее снова открываем нашу статью, созданную в п.1 и в месте вывода формы обратной связи вписываем: {loadposition feedback123}, либо другое название позиции, которое вы задали в п.3.
После этих действий в меню должна появиться страница обратной связи, содержащая форму и ваш текст. Далее вы можете оформить ее так, как захотите.
Еще одно небольшое замечание. При написании статьи я тестировал модуль Rapid Contact последней версии. Возможно, в нем есть небольшая ошибка. Заключается она в том, что если написать в форме контактов свой обратный email с большой буквы, то он не проходит проверку правильности и появляется сообщение об ошибке. Если писать email с маленькой буквы, то все в порядке. В версии, используемой на этом сайте, подобной ошибки не наблюдалось. Возможно, ее нет и в последней, а это всего лишь какой-то глюк моего измученного тестового сайта. Но так или иначе, проверьте это, если решите использовать данный модуль.
Спасибо!
Этот коммент не по теме статьи, но из обратной формы вы сказали, что не ответите.
У вас в статьях везде можно поставить рейтинг. А как вывести в модуле, скажем, 5-ку лучших, или узнать победителя по этим рейтингам ? Подскажите пожалуйста, нигде не нашел.
Стандартная система Joomla не предусматривает сортировку по рейтингу. Возможно, существует дополнительный модуль, использующий ее, но я таких не искал, поэтому могу лишь дать ссылку, где посмотреть:
http://extensions.joomla.org/extensions/clients-a-communities/ratings-a-reviews
Большое спасибо !
Допустим, есть страница товара сделанная табами по вашему мануалу. Последний таб - "задать вопрос". Есть штатная ворма, но она ссылку выдает, а мне форма прям на вкладке нужна.
Может подскажете решение?
Благодарю!
из-за чего это может быть? в самой Джумле не где больше настраивать не надо?
> Теперь еще один важный момент. Думаю, многие хотели бы использовать для формы обратной связи отдельную страницу.
Немного непонятно. А по умолчанию форма показана на всех страница? Мне нужно на всех.
Жаль, что можно только почту, тему и текст ввести, а имя нельзя. Также хорошо бы выбирать готовые варианты тем.
У вас видимо "тема" переименовано на "имя". Это конечно, выход, но может по другому можно? Может ещё есть компоненты?
http://extensions.joomla.org/extensions/contacts-and-feedback/contact-forms - это попроще.
http://extensions.joomla.org/extensions/contacts-and-feedback/forms - это тяжелая артиллерия.
В Джумле прописал адрес почты, попробовал разные способы отправки почты (PHP mail function, Sendmail, SMTP сервер) все равно не работает, на моем хостинге путь к sendmail: /usr/bin/sendmail также прописано в джумле
все заработало.
Немного не понял, где находится поле положение,подскажите пожалуста
Все сделал как написано в теле документа вместо формы только {loadposition feedback123}
Ответ найден, читайте ниже по общей ветке...
ну и куда это писать??????
+1 Автору статьи нужно было эту тонкость указать, сам два часа потратил, пока не прочитал эту ветку отзывов!
Все получилось. Почти с первого раза)) Огромное спасибо!!!!!!!
можете сами попробывать отправить вопрос, сайт ukreuromaz.com
модуль на главной внизу
Где этот формат прописывается?
вот что стоит на проверку e-mail
// check email
if ($_POST["rp_email"] === "") {
$myError = '' . $noEmail . '';
}
if (!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/", $_POST["rp_email"])) {
$myError = '' . $invalidEmail . '';
}
JFTP::mkdir: Bad response
JFTP::chmod: Bad response
Module Install: Failed to create directory.: "/home/host1222204/chairful.com/htdocs/www/modules/mod_rapid_contact"
Install Module Error
и что делать? (
Не подскажете почему может выдаваться вот это сообщение? Потому что на локалке?
Deprecated: Function eregi() is deprecated in /Users/op/Sites/13/modules/mod_rapid_contact/mod_rapid_contact.php on line 60
Спасибо за сообщение.
В строке 60 правила ввода ответа на вопрос, я попробовала все варинты.
Письма при этом не приходят.
http://ibone.org.ua/php/function_eregi_deprecated.htm
http://takien.com/513/how-to-fix-function-eregi-is-deprecated-in-php-5-3-0.php
С локалки письма приходить в любом случае не будут.
Решение
Заменяем строку
if (!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/", $_POST["rp_email"])) {
в файле mod_rapid_contact.php
на
if (!preg_match("|^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,6}$|i", $_POST["rp_email"])) {
При отправке письма в форме, на почту почему то приходят сразу 2 письма.
У меня проблемка в том, что на сайте чёрный фон, и соответственно, нужно, что бы на чёрном фоне были белые буквы! Не знаю как это поменять, а то получается видны только поля формы!
1) находим открывающий тег таблицы, в которой выводится форма:
2) находим этот же тег в коде модуля
3) добавляем к нему стиль:
либо создаем css-класс и правило для него(это сложнее, но правильнее).
1) файла html не существует
2) через Firebug можно только посмотреть, но не исправить.
Что нужно сделать?
Открыть PHP-файл модуля:
\modules\mod_rapid_contact\mod_rapid_contact.php
Найти там эту табличку и поправить стиль. Там код будет выглядеть не так, как в Firebug'е, т.к. это php-код, который генерирует то, что будет показано на странице. Но думаю, вы все же разберетесь с этим файлом. Там все достаточно просто.
Как изменить внешний вид формы?
но все перекосило...
уж поверьте, если б хоть в одном из двух файлов встретил атрибут border - я бы знал, что с ним делать... азы HTML знаю. спасибо конечно за ответ, но разве трудно было помочь конкретнее? - время. время... Поставил другой модуль - так быстрее Ваш сайт у меня в IE 8 тормозит жутко, вот мозилла рулит.
быстро настроил.
Спасибо за описание на русском.
Загвоздка была в том что нужно еще в Привязке к пунктам меню (нижняя часть модуля) - выбрать пункт на всех страницах, без этого - модуль не отображается на странице.
Joomla 1.7
Почему появляется данная ошибка?Никак разобраться не могу. Может кто знает в чем причина? Модуль Rapid Contact(1.6 последняя)
Я так понял проблема в шаблоне. Но какая?Может кто знает как определить в чем беда? На другом сайте проверил действительно все работает(
Плагин и модуль включены! Что делаю не так?
Сам Решил эту проблемку:
нужно было привязать модуль к пункту в меню на указанных страницах.
Спасибо!
Спасибо!
Wedal, а Вы сможете подсказать, что именно надо удалить?
Большое спасибо!
Кто-нибудь сталкивался? Как решить?
Ну дак я ж только что этот вопрос задавала, Виталий/WEdal ответил-оказывается нужно не выбирать существующий модуль джумлы из выпадающего списка,а самим (вручную!) напечатать любой другой .Я даже и не догадывалась,что можно от балды там что угодно напечатать.Вот я и напечатала как WEdal feedback123 -попробуйте, и у вас будет только одна форма -на странице ! СПАСИБО ВАМ WEDAL за быстрый ответ.все работает!
Я ввожу действительную почту!!! опробовать можно www.ourhome.kz (сайт мой) Спасибо!
Такая проблема: установил модуль, настроил его, все ок, все отображается, ошибок не выдает, письма отправляются, но не приходят!
Почта правда на gmail, пробовал на mail поменять, все равно не приходят, в чем может быть проблема?
Когда вводишь неверный ответ, форма выдает соответствующее сообщение, на затем не верно выводит ранее введенный эл. адрес. Вместо него идет длинная строка.
Спасибо.
Еще в ней есть фраза, что "этот эл. адрес защищен от спам-ботов."
Что бы это могло быть71
Да хлам а не форма! Искать нужно замену срочно!
Но после отправки сообщения выводится текст спасибо.форма пропадает
и все чтоб отправить новое сообщение приходится снова заходить меню-обратная связь
Не подскажите, где поменять строку "Тема" на "Телефон" и где изминить сообщение, всплывающее после отправки письма?
Расширения - менеджер языков - переопределение констант. Там разберетесь.
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.),на бесплатном-все работает. В чем дело?(
Стоит что-то поставить на сайт, изменить чего-нить, плагин какой воткнуть и всё! Она собака молча просто перестает посылать письма. Самое досадное что всё это молча! Страшно подумать сколько заказов мимо пролетело благодаря ей =(