web-dev-qa-db-fra.com

Comment utiliser le plugin Joomla recaptcha avec mon module personnalisé?

J'ai créé un module personnalisé pour mon formulaire de contact. Maintenant, je veux utiliser le plugin Joomla recaptcha avec ce module.

Une idée de comment faire ça?

24
Toretto

Pour utiliser le plugin joomla default recaptcha, suivez ces étapes:

1) Obtenez les clés recaptcha de http://www.google.com/recaptcha

2) Définissez ces clés sur le plug-in recaptcha et activez-le s'il ne l'est pas.

3) Mettez ci-dessous le code où vous voulez montrer 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) Mettez ce code là où vous validez/traitez le formulaire

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

// Pour Joomla 3.x

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

Pour faire suite au code d’Irfan, j’ai également dû faire ce qui suit pour que le captcha se présente:

Ajoutez ce qui suit au code du modèle.

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

Apparemment, il comprend la bibliothèque mootools.

Il semble qu'un événement domready soit ajouté, mais il ne se déclenche que lorsque la bibliothèque mootools est utilisée. Il suffit donc de vérifier votre source HTML et de voir si mootools est utilisé. J'ai peut-être complètement tort, mais j'espère que ma solution aidera quelqu'un.

2
w_hoami

Je l'ai obtenu à partir de: http://jw-extension.net/joomla-how-to/138-an-easy-way-insert-captcha-in-any-module-or-component-of-joomla.html

  1. Télécharge le

  2. connectez-vous à http://www.google.com/recaptcha pour obtenir la clé publique reCAPTCHA et la clé privée reCAPTCHA

  3. Installer, activer et entrer clé publique et clé privée

  4. Dans HTMLmodule, insérez {captcha} où vous devez afficher captcha

  5. En général, veuillez insérer

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

afficher captcha.

  1. Si l'option Vérification automatique avec reCAPTCHA est activée, le plug-in vérifiera s'il existe des données de vérification captcha, puis se connectera automatiquement à reCAPTCHA et demandera une confirmation. Cette méthode nécessite un peu plus de ressources système à chaque chargement de page, mais elle est très utile si vous avez plusieurs pages nécessitant une vérification captcha . Si vous ne souhaitez pas activer la vérification captcha globalement, mais seulement quelques pages, désactivez l'option Auto. -vérifier avec l'option reCAPTCHA. Pour vérifier la réponse de l'utilisateur, insérez le code PHP suivant dans le fichier contrôleur de chaque lecteur Joomla! extension où vérification captcha nécessaire:

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