Простой модуль обратного звонка
Simple Callback Module
Простой модуль обратного звонка или для обратной связи. Совместим с Joomla 3.0 и выше. При необходимости дополняется компонентом Simple Callback Component, для сохранения сообщений в панели администрирования.
Основные преимущества:
Бесплатный
Безопасный: поддержка токенов (CSRF) капчи и honneypot.
Без перезагрузки страницы (ajax).
SMS-уведомления с помощью сервиса SMS.ru (бесплатно, в случае отправки на один телефон)
Возможность вставки нескольких модулей на одну страницу
Содержит все необходимые настройки
Возможности:
Модуль поддерживает несколько видов отображения на странице:
Как обычный модуль — форма вставляется в указанную позицию
Как оверлей — код формы вставлен в позицию, но сама форма скрыта. Вызвать форму можно с любой кнопки на странице с аттрибутом data-simplecallback-open, например:
<a href="#" data-simplecallback-open>
Обратная связь
</a>
В коде сверху вызовется самый первый модуль с оверлеем. Если на странице размещается сразу несколько модулей, то вызвать нужный можно указав ID модуля в аттрибуте data-simplecallback-open, например:
<a href="#" data-simplecallback-open="93">
Обратный звонок
</a>
Альтернативный способ открытия — использование хэш ссылки. Может быть полезным, если вы хотите сделать кнопку обратного звонка в меню Joomla.
<a href="#simplecallback-93">
Обратный звонок
</a>
Закрыть оверлей можно любой кнопкой/ссылкой с атрибутом data-simplecallback-close, пример:
<a href="#" data-simplecallback-close>
Закрыть [x]
</a>
Еще вызвать модуль можно через JS:
/* показать оверлей с модулем по id */
simplecallback.show(id);
/* скрыть оверлей с модулем */
simplecallback.hide();
Передача скрытого текста:
Иногда возникает ситуация: вам необходимо понимать с какой кнопки был совершен обратный звонок. Для этого можно использовать атрибут data-simplecallback-custom-data. Значение этого атрибута будет указано в письме. Может быть полезно, например, если у вас множество товаров на странице и на всех есть кнопка быстрого заказа.
<a href="#" data-simplecallback-open="93" data-simplecallback-custom-data="Купить iPhone 6">
Купить в 1 клик
</a>
События JS:
События могут быть полезны, если вы пользуетесь Яндекс.Метрикой или Google Analytics. Можно отследить следующие события:
simplecallback:beforeShow — событие до открытия модального окна
simplecallback:afterShow — событие после открытия модального окна
simplecallback:success — событие после успешной отправки данных и получения ответа с сервера с валидными данными
simplecallback:error — событие в случае сетевой ошибки, либо parseError
simplecallback:error — событие в случае сетевой ошибки, либо parseError
Примеры использования событий:
$(document).on('simplecallback:beforeShow', function(event, data) {
console.log(data);
alert('Simplecallback beforeShow event triggered \nmoduleId: ' + data.moduleId + ' \ncustomData: ' + data.customData);
});
$(document).on('simplecallback:afterShow', function(event, data) {
console.log(data);
alert('Simplecallback afterShow event triggered \nmoduleId: ' + data.moduleId + ' \ncustomData: ' + data.customData);
});
$(document).on('simplecallback:success', function(event, data) {
console.log(data);
alert('Simplecallback success event triggered \nform: ' + data.form + ' \nmoduleId: ' + data.moduleId + ' \ncustomData: ' + data.customData + ' \ndata: ' + data.data);
});
$(document).on('simplecallback:error', function(event, data) {
console.log(data);
alert('Simplecallback error event triggered \nform: ' + data.form + ' \nmoduleId: ' + data.moduleId + ' \ncustomData: ' + data.customData + ' \ndata: ' + data.data + ' \njqXHR: ' + data.jqXHR + ' \ntextStatus: ' + data.textStatus + '\n errorThrown: ' + data.errorThrown);
});
$(document).on('simplecallback:complete', function(event, data) {
console.log(data);
alert('Simplecallback complete event triggered \nform: ' + data.form + ' \nmoduleId: ' + data.moduleId + ' \ncustomData: ' + data.customData + ' \ndata: ' + data.data + ' \njqXHR: ' + data.jqXHR + ' \ntextStatus: ' + data.textStatus);
});
Дизайн, шаблоны и пр:
Модуль создан без особого прицела на визуальный дизайн, т.к. дизайн каждого сайта индивидуален, поэтому вам предоставляется полная свобода для оформления и верстки.
Для того, чтобы создать свой шаблон, создайте директорию /templates/название-вашего-шаблона/html/mod_simplecallback/ и добавьте туда копию файла default.php из директории /modules/mod_simplecallback/tmpl/default.php. Вы можете создать разные шаблоны в папке вашего шаблона и выбирать их из панели администрирования в настроке модуля «Альтернативный макет».
Рекомендации по настройке:
Настоятельно рекомендуется настроить в общих настройках Joomla отправку писем не через PHP Mail, а через SMTP-сервер. Это уменьшит шанс того, что ваше письмо попадет в спам или вовсе будет удалено на вашем почтовом ящике фильтрами.
Система — Общие настройки — Сервер — Способ отправки: SMTP
Для SMTP рекомендуется завести отдельный ящик, в целях безопасности, т.к. SMTP пароли в Joomla хранятся в открытом виде. В случае компрометации Joomla ваш основной ящик не пострадает!