Con la nueva versión de Joomla se ha integrado la versión 2 de reCAPTCHA para prevenir el acceso de robots de SPAM.
En algunas extensiones lo tenemos integrado de forma nativa, por lo que podemos utilizarlo.
En este artículo te voy a explicar cómo integrarlo en el desarrollo de una nueva extensión.
Vamos a ver los pasos a seguir.
Pasos para integrar el plugin de reCaptcha en un componente Joomla
1/ Vista del componente
En la vista de nuestro componente, com_componente/views/vista/tmpl/default.php añadimos las siguientes líneas de código en el sitio donde queramos que se muestre el Captcha:
Código PHP:
JPluginHelper::importPlugin('captcha'); $dispatcher = JDispatcher::getInstance(); $dispatcher->trigger('onInit','caparecaptcha');
- Con la primera línea importamos el plugin Captcha de Joomla.
- Con la segunda creamos una nueva instancia de ese plugin.
- Con la tercera lanzamos el disparador. Para ello tenemos que poner un identificador (en este caso "caparecaptcha").
Código HTML:
- Con esta línea creamos un div con un id que se llame igual que el identicicador anterior. Aquí es donde se mostrará el Captcha de Goolge.
2/ Model del componente
En el modelo, para validar que se ha introducido correctamente los caracteres que nos solicita el Captcha, tenemos que añadir las siguientes líneas de código:
JPluginHelper::importPlugin('captcha'); $dispatcher = JEventDispatcher::getInstance(); $res = $dispatcher->trigger('onCheckAnswer',$datos['recaptcha_response_field']); if(!$res[0]){ return ERROR; }
- Con la primera línea importamos el plugin Captcha de Joomla.
- Con la segunda cogemos el evento de ese plugin.
- Con la tercera recogemos el resultado pasándole al "trigger" el dato correspondiente que se ha introducido en la vista.
- Con la cuarta hacemos un "if" para saber si es correcto o no.
De esta forma tan sencilla tenemos integrado el plugin de Captcha en un componente para Joomla
Espero que os haya resultado sencillo este tip para Joomla!. Cualquier comentario ya sabéis que es bienvenido.