這是我第一次使用Joomla組件。我想使用他們的聯繫表單,但不支持Google ReCaptcha。 我覺得我可以手動將它添加到/com_sppagebuilder/addons/ajax_contact/site.php中,並讓它起作用。 我的確添加了:<div class="g-recaptcha" data-sitekey="My_Key"></div>;
Joomla ReCaptcha插件被激活。 我不知道是否必須,但我將<script src='https://www.google.com/recaptcha/api.js'></script>
添加到頭標記中。 有了這個ReCaptcha顯示正常。Joomla,Sp頁面構建器和ReCaptcha
我的問題是驗證。 我曾嘗試在site.php中添加一些驗證代碼,但我相信SP Page Builder使用JFactory :: getMailer();準備好電子郵件併發送,我對此一無所知。因此,我不知道我可以在哪裏添加我的ReCaptcha驗證代碼,並且因爲我在網上找到了幾個版本的代碼,所以我真的不知道要使用哪一個。 我一直在尋找一些解決辦法,以便如何做這個驗證...我嘗試了很多東西,但它仍然無法正常工作。
任何人都可以幫助我解決這個問題嗎?
非常感謝!
編輯
我想我的問題是不夠清楚:
我想補充的Recaptcha,這已經在我的網站工作的其他形式的罰款(所以它不是與Joomla問題的結構)。我想在網站的其他部分使用以下SP頁面生成器聯繫表單,而不是RSFormPro。驗證過程應圍繞這部分來完成,但我想添加谷歌驗證碼,我試過它的幾個版本,我發現在互聯網,並且它不工作:
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>';
}
}
任何建議?
謝謝!
我這樣做。從我從SP頁面生成器中發現的,他們不支持ReCaptcha,所以他們不會幫助。我確實設法將ReCaptcha添加到他們的表單中,並且正確顯示。問題是無論我嘗試了什麼,無論ReCaptcha是否被選中,表單都會通過。我不知道如何添加驗證代碼......我發現SP頁面生成器使用JFactory :: getMailler()來準備和發送表單,但我對此一無所知。 – StS
要在組件中添加自定義ReCaptcha,請選中此項 - http://stackoverflow.com/questions/12840015/how-to-use-joomla-recaptcha-plugin-to-my-custom-module/12860744#12860744 –
我看過並嘗試,但正如我所說,我無法弄清楚把驗證碼放在哪裏。我相信他們使用Jmail(因爲:JFactory :: getMailer()),但我不知道在哪裏找到或添加驗證代碼。 – StS