How to use Joomla recaptcha plugin with my custom module?

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-26 15:59:27

问题


I have created a custom module for my contactus form. Now I want to use Joomla recaptcha plugin with this module.

Any idea how to get this done?


回答1:


In order to use joomla default recaptcha plugin follow these steps-

1)Get recaptcha keys from http://www.google.com/recaptcha

2)Set these keys to recaptcha plugin and activate it if it's not.

3)Put below code where you want to show 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)Put this code where you validating/processing the form

$post = JRequest::get('post');      
JPluginHelper::importPlugin('captcha');
$dispatcher = JDispatcher::getInstance();
$res = $dispatcher->trigger('onCheckAnswer',$post['recaptcha_response_field']);
if(!$res[0]){
    die('Invalid Captcha');
}

//For Joomla 3.x

$post = JFactory::getApplication()->input->post;
$dispatcher = JEventDispatcher::getInstance();



回答2:


Following up on Irfan's code, additionally I had to do the following for the captcha to show up:

Add the following to the template code.

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

Apparently it includes the mootools library.

It seems that an event domready is added, but the event only fires when mootools library is used. So just check your html source and see if mootools is being used. I might be completely wrong but hope my solution helps someone.




回答3:


Got this from: http://jw-extension.net/joomla-how-to/138-an-easy-way-insert-captcha-in-any-module-or-component-of-joomla.html

  1. Download it

  2. login to http://www.google.com/recaptcha to get reCAPTCHA Public Key and reCAPTCHA Private Key

  3. Install , enable and enter public and private key

  4. In HTMLmodule insert {captcha} where you need to display captcha

  5. In general please insert

    global $mainframe;
    $mainframe->triggerEvent('onCaptchaDisplay');
    

to display captcha.

  1. If Auto-verify with reCAPTCHA option is enabled, the plugin will check if captcha verification data exists then automatically connect to reCAPTCHA and ask for confirmation. This method requires a little more system resource on every page load but really useful if you have many pages need captcha verification. If you don't want to enable captcha verification globally but for just few pages then you might want to disable Auto-verify with reCAPTCHA option. To verify user response, insert the following PHP code to the controller file of individual Joomla! extension where captcha verification needed:

    global $mainframe;
    $mainframe->triggerEvent('onCaptchaConfirm');
    


来源:https://stackoverflow.com/questions/12840015/how-to-use-joomla-recaptcha-plugin-with-my-custom-module

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!