问题
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
Download it
login to http://www.google.com/recaptcha to get reCAPTCHA Public Key and reCAPTCHA Private Key
Install , enable and enter public and private key
In HTMLmodule insert
{captcha}
where you need to display captchaIn general please insert
global $mainframe; $mainframe->triggerEvent('onCaptchaDisplay');
to display captcha.
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