Я создал специальный модуль для формы contactus. Теперь я хочу использовать плагин joomla recaptcha в этом модуле. Любая идея, как это сделать?
пожалуйста, помогите
Я создал специальный модуль для формы contactus. Теперь я хочу использовать плагин joomla recaptcha в этом модуле. Любая идея, как это сделать?
пожалуйста, помогите
Чтобы использовать плагин recaptcha по умолчанию для joomla, выполните следующие действия:
1) Получить ключи recaptcha из http://www.google.com/recaptcha
2) Установите эти ключи в плагин recaptcha и активируйте его, если это не так.
3) Поместите ниже код, где вы хотите показать recaptcha
//php code
JPluginHelper::importPlugin('captcha');
$dispatcher = JDispatcher::getInstance();
$dispatcher->trigger('onInit','dynamic_recaptcha_1');
//html code inside form tag
<div id="dynamic_recaptcha_1"></div>
4) Поместите этот код, где вы проверяете/обрабатываете форму
$post = JRequest::get('post');
JPluginHelper::importPlugin('captcha');
$dispatcher = JDispatcher::getInstance();
$res = $dispatcher->trigger('onCheckAnswer',$post['recaptcha_response_field']);
if(!$res[0]){
die('Invalid Captcha');
}
//Для Joomla 3.x
$post = JFactory::getApplication()->input->post;
$dispatcher = JEventDispatcher::getInstance();
Следуя за кодом Irfan, дополнительно мне нужно было сделать следующее, чтобы показать:
Добавьте в код шаблона следующее.
JHtml::_('behavior.keepalive');
По-видимому, он включает в себя библиотеку mootools.
Кажется, что добавлено событие domready, но событие запускается только при использовании библиотеки mootools. Поэтому просто проверьте источник html и посмотрите, используется ли mootools. Возможно, я ошибаюсь, но надеюсь, что мое решение поможет кому-то.
Получите это от: http://jw-extension.net/joomla-how-to/138-an-easy-way-insert-captcha-in-any-module-or-component-of-joomla.html
Загрузить
войдите в http://www.google.com/recaptcha, чтобы получить открытый ключ RECAPTCHA и закрытый ключ reCAPTCHA
Установите, включите и введите открытый и закрытый ключи
В HTMLmodule вставьте {captcha}
, где вам нужно отобразить captcha
В общем, пожалуйста, вставьте
global $mainframe;
$mainframe->triggerEvent('onCaptchaDisplay');
чтобы отобразить captcha.
Если функция Auto-verify с параметром reCAPTCHA включена, плагин проверяет, существуют ли данные проверки перехвата, затем автоматически подключается к reCAPTCHA и запрашивает подтверждение. Этот метод требует немного больше системного ресурса при каждой загрузке страницы, но очень полезен, если у вас есть много страниц, требующих проверки по электронной почте. Если вы не хотите включать проверку по электронной почте в глобальном масштабе, но всего за несколько страниц, вам может потребоваться отключить автоопределение с помощью опции reCAPTCHA. Чтобы проверить ответ пользователя, вставьте следующий код PHP в файл контроллера отдельного Joomla! расширение, где требуется проверка проверки:
global $mainframe;
$mainframe->triggerEvent('onCaptchaConfirm');