Подтвердить что ты не робот

Как использовать плагин joomla recaptcha для моего настраиваемого модуля

Я создал специальный модуль для формы contactus. Теперь я хочу использовать плагин joomla recaptcha в этом модуле. Любая идея, как это сделать?

пожалуйста, помогите

4b9b3361

Ответ 1

Чтобы использовать плагин 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();

Ответ 2

Следуя за кодом Irfan, дополнительно мне нужно было сделать следующее, чтобы показать:

Добавьте в код шаблона следующее.

JHtml::_('behavior.keepalive');

По-видимому, он включает в себя библиотеку mootools.

Кажется, что добавлено событие domready, но событие запускается только при использовании библиотеки mootools. Поэтому просто проверьте источник html и посмотрите, используется ли mootools. Возможно, я ошибаюсь, но надеюсь, что мое решение поможет кому-то.

Ответ 3

Получите это от: 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');