Воскресенье, 29 мая 2016 12:23

jTriad contact form. Проект Alliance-asf.ru

Оцените материал
(1 Голосовать)

Статья является, в некотором роде, попыткой расширенного changelog эксклюзивно написанного для проекта alliance-asf.ru модуля Fancy AJAX Contact Form, превратившейся в настоящий момент в jTriad Contact Form - контактную форму для Joomla 3.

 jTriad Contact Form

История данной разработки, берущая начало от одного из web-проектов Masterpro и вылившаяся в итоге в самостоятельное расширение - детально представлена в материалах, заголовки которых вы можете увидеть в левом сайдбаре этой странички; в настоящий момент любители и профи Joomla имеют возможность опробовать jTriad contact form на своем сайте, а также проголосовать за модуль на странице JED.

 

Разработка сайтов

 

 

Рассмотрим здесь процесс подключения recaptcha 2.0 к нашей формочке: первая recaptcha у нас с вами работала и в старой версии модуля, а вот вторая (при выборе recaptcha 2.0 вместо recaptcha 1.0 в плагине Joomla) пока что работать не хочет... впрочем, решение тривиально и совсем несложно. Подключение recaptcha для расширения Joomla 3 возможно следующим образом:

 

<? JPluginHelper::importPlugin('captcha');
$dispatcher = JDispatcher::getInstance();
$recaptcha = $dispatcher->trigger('onDisplay', array(null, 'dynamic_recaptcha_1', 'class=""'));
echo (isset($recaptcha[0])) ? $recaptcha[0] : ''; ?>

 

это означает, что в файле mod_contactform_masterpro.php у нас с вами остается неизменным:

 

<? JPluginHelper::importPlugin('captcha');
$dispatcher = JEventDispatcher::getInstance();
$dispatcher->trigger('onInit','dynamic_recaptcha_1'); ?>

 

, а вот файл default.php в директории tmpl вместо

 

<div id="dynamic_recaptcha_1"></div>

 

содержит теперь следующие строчки кода (подключим заодно и проверку на то, включен ли плагин recaptcha):

 

<? if(JPluginHelper::isEnabled('captcha', 'recaptcha')) {
$recaptcha = $dispatcher->trigger('onDisplay', array(null, 'dynamic_recaptcha_1', 'class=""'));
echo (isset($recaptcha[0])) ? $recaptcha[0] : ''; }
else echo '<p><img src="/modules/mod_contactform_masterpro/img/recaptcha.jpg" /></p>'; ?>

 

И все у нас с вами сразу начинает работать... хм, все, да вот не все. Модуль действительно теперь корректно отображает recaptcha 1.0 и recaptcha 2.0, в зависимости от выбранных опций плагина recaptcha, да вот только, если пользователь ошибается при заполнении формочки и получает, соответственно, ошибку при попытке отправки - вторая recaptcha не дает возможности отправить данные повторно.

Что же делать? Правильным решением была бы, вероятно, реализация связанных (зависимых) списков, заведомо исключающих для пользователей нашей формочки возможность ошибиться при выборе, например, вакансии, имеющей место быть в том или ином городе... пока что он получает только варнинг; может быть, вообще исключить возможность неправильного выбора? Да, разумеется. Но об этом - чуть позже, в следующей статье (клик по ссылке, готово!). А пока что - ограничимся тем, что просто повесим переинициализацию recaptcha... подробности, код и diff - на форуме, и спасибо за внимание, на сегодня это все. Хорошего вам кодинга!

Последнее изменениеЧетверг, 10 января 2019 20:03

Оставить комментарий

Добавьте ваш комментарий

How to create a Joomla Contact Form

Заказать сайт

Веб-разработка. Заказать сайт

Вы можете заказать сайт-визитку, блог, корпоративный сайт, интернет-магазин или коммерческий web-портал.