C'est la première fois que j'utilise SP Page Builder composant avec Joomla. Je souhaite utiliser leur formulaire de contact, mais il ne prend pas en charge Google ReCaptcha. Je suis assez bon avec le codage à pensé que je pourrais l'ajouter manuellement dans: /com_sppagebuilder/addons/ajax_contact/site.php et le faire fonctionner. J'ai ajouté: <div class="g-recaptcha" data-sitekey="My_Key"></div>;
Et le plugin Joomla ReCaptcha est activé. Je ne savais pas si je devais, mais j'ai ajouté <script src='https://www.google.com/recaptcha/api.js'></script>
dans l'étiquette de la tête. Avec cela, le ReCaptcha montre bien.Joomla, Sp Page Builder et ReCaptcha
Mon problème est avec la validation. J'ai essayé d'ajouter du code de validation dans le site.php mais je crois que SP Page Builder utilise JFactory :: getMailer(); pour préparer l'e-mail et l'envoyer, et je ne sais rien à ce sujet. Par conséquent, je ne sais pas où je peux ajouter mon code de validation ReCaptcha, et comme j'ai trouvé quelques versions de ce code en ligne, je ne sais vraiment pas lequel utiliser. J'ai cherché partout des réponses sur comment faire cette vérification ... et j'ai essayé beaucoup de choses, mais ça ne marche toujours pas.
Quelqu'un peut-il m'aider à travers celui-ci?
Merci beaucoup!
EDIT
Je pense que ma question ne suffit pas claire:
Je veux ajouter Recaptcha, qui fonctionne déjà bien dans d'autres formes sur mon site (il est donc pas une configuration avec le problème Joomla). Je souhaite utiliser le formulaire de contact SP Page Builder suivant et non RSFormPro comme sur le reste du site Web. Le processus de validation doit être fait dans cette section, mais j'ai essayé d'ajouter le code de validation Google, et j'ai essayé quelques versions de celui-ci, je trouve, l'Internet, et il ne fonctionne pas du tout:
public static function getAjax() {
$input = JFactory::getApplication()->input;
$mail = JFactory::getMailer();
//inputs
$inputs = $input->get('data', array(), 'ARRAY');
foreach ($inputs as $input) {
if($input['name'] == 'recipient') {
$recipient = base64_decode($input['value']);
}
if($input['name'] == 'email') {
$email = $input['value'];
}
if($input['name'] == 'name') {
$name = $input['value'];
}
if($input['name'] == 'subject') {
$subject = $input['value'];
}
if($input['name'] == 'message') {
$message = nl2br($input['value']);
}
}
/*Try at the validation*/
$captcha_plugin = JFactory::getConfig()->get('captcha');
if ($captcha_plugin != '0') {
$captcha = JCaptcha::getInstance($captcha_plugin);
$field_id = 'google-recaptcha';
print $captcha->display($field_id, $field_id, 'g-recaptcha');
}
$sender = array($email, $name);
$mail->setSender($sender);
$mail->addRecipient($recipient);
$mail->setSubject($subject);
$mail->isHTML(true);
$mail->Encoding = 'base64';
$mail->setBody($message);
if ($mail->Send()) {
return '<span class="sppb-text-success">'. JText::_('COM_SPPAGEBUILDER_ADDON_AJAX_CONTACT_SUCCESS') .'</span>';
} else {
return '<span class="sppb-text-danger">'. JText::_('COM_SPPAGEBUILDER_ADDON_AJAX_CONTACT_FAILED') .'</span>';
}
}
Toutes les suggestions ?
Merci!
je l'ai fait. D'après ce que j'ai trouvé sur SP Page Builder, ils ne supportent pas ReCaptcha, donc ils ne vont pas aider. J'ai réussi à ajouter le ReCaptcha dans leur forme, et il montre correctement. Le problème est que peu importe ce que j'ai essayé, le formulaire passe, peu importe si la ReCaptcha est cochée ou non. Je ne sais pas comment ajouter le code de validation ... Je vois que SP Page Builder utilise JFactory :: getMailler() pour préparer et envoyer le formulaire, mais je ne sais rien à ce sujet. – StS
Pour ajouter ReCaptcha personnalisé dans votre composant, cochez ceci - http://stackoverflow.com/questions/12840015/how-to-use-joomla-recaptcha-plugin-to-my-custom-module/12860744#12860744 –
cela et essayé, mais comme je l'ai dit, je ne peux pas savoir où mettre le code de validation. Je crois qu'ils utilisent Jmail (à cause de: JFactory :: getMailer()) mais je ne sais pas où trouver ou ajouter le code de validation dans cela. – StS