mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 17:21:39 +09:00
Support multiple CAPTCHA instances on the same page
This commit is contained in:
parent
5012bc194b
commit
fe63f24617
5 changed files with 19 additions and 6 deletions
|
|
@ -9,7 +9,7 @@ if ($addon_info->use_signup === 'Y' && preg_match('/^(?:disp|proc)Member(?:SignU
|
||||||
{
|
{
|
||||||
$enable_captcha = true;
|
$enable_captcha = true;
|
||||||
}
|
}
|
||||||
if ($addon_info->use_recovery === 'Y' && preg_match('/^(?:disp|proc)Member(?:FindAccount|ResendAuthMail)/i', Context::get('act')))
|
elseif ($addon_info->use_recovery === 'Y' && preg_match('/^(?:disp|proc)Member(?:FindAccount|ResendAuthMail)/i', Context::get('act')))
|
||||||
{
|
{
|
||||||
$enable_captcha = true;
|
$enable_captcha = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ class reCAPTCHA
|
||||||
protected static $verify = 'https://www.google.com/recaptcha/api/siteverify';
|
protected static $verify = 'https://www.google.com/recaptcha/api/siteverify';
|
||||||
protected static $config = null;
|
protected static $config = null;
|
||||||
protected static $script_added = false;
|
protected static $script_added = false;
|
||||||
|
protected static $sequence = 1;
|
||||||
|
|
||||||
public static function init($config)
|
public static function init($config)
|
||||||
{
|
{
|
||||||
|
|
@ -49,12 +50,13 @@ class reCAPTCHA
|
||||||
|
|
||||||
if (!self::$script_added)
|
if (!self::$script_added)
|
||||||
{
|
{
|
||||||
Context::addHtmlFooter('<script src="https://www.google.com/recaptcha/api.js" async defer></script>');
|
Context::loadFile(array('./addons/recaptcha/recaptcha.js', 'body'));
|
||||||
|
Context::addHtmlFooter('<script src="https://www.google.com/recaptcha/api.js?render=explicit&onload=reCaptchaCallback" async defer></script>');
|
||||||
self::$script_added = true;
|
self::$script_added = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$html = '<div class="g-recaptcha" data-sitekey="%s" data-theme="%s" data-size="%s"></div>';
|
$html = '<div id="recaptcha-instance-%d" class="g-recaptcha" data-sitekey="%s" data-theme="%s" data-size="%s"></div>';
|
||||||
$html = sprintf($html, escape(self::$config->site_key), self::$config->theme ?: 'light', self::$config->size ?: 'normal');
|
$html = sprintf($html, self::$sequence++, escape(self::$config->site_key), self::$config->theme ?: 'light', self::$config->size ?: 'normal');
|
||||||
return $html;
|
return $html;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
11
addons/recaptcha/recaptcha.js
Normal file
11
addons/recaptcha/recaptcha.js
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
|
||||||
|
function reCaptchaCallback() {
|
||||||
|
$(".g-recaptcha").each(function() {
|
||||||
|
var instance = $(this);
|
||||||
|
grecaptcha.render(instance.attr("id"), {
|
||||||
|
sitekey: instance.data("sitekey"),
|
||||||
|
size: instance.data("size"),
|
||||||
|
theme: instance.data("theme")
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
@ -318,7 +318,7 @@ $lang->cmd_no = 'No';
|
||||||
$lang->cmd_set_multilingual = 'Select Language';
|
$lang->cmd_set_multilingual = 'Select Language';
|
||||||
$lang->cmd_multilingual = 'Language';
|
$lang->cmd_multilingual = 'Language';
|
||||||
$lang->find_site = 'Find Site';
|
$lang->find_site = 'Find Site';
|
||||||
$lang->captcha = 'Captcha';
|
$lang->captcha = 'Spam Check';
|
||||||
$lang->reload = 'reload';
|
$lang->reload = 'reload';
|
||||||
$lang->play = 'play';
|
$lang->play = 'play';
|
||||||
$lang->use_and_display = 'Use and Display Vote List';
|
$lang->use_and_display = 'Use and Display Vote List';
|
||||||
|
|
|
||||||
|
|
@ -319,7 +319,7 @@ $lang->cmd_no = '아니오';
|
||||||
$lang->cmd_set_multilingual = '다국어 설정';
|
$lang->cmd_set_multilingual = '다국어 설정';
|
||||||
$lang->cmd_multilingual = '다국어';
|
$lang->cmd_multilingual = '다국어';
|
||||||
$lang->find_site = '사이트 찾기';
|
$lang->find_site = '사이트 찾기';
|
||||||
$lang->captcha = 'Captcha';
|
$lang->captcha = '스팸 방지 기능';
|
||||||
$lang->reload = '새로고침';
|
$lang->reload = '새로고침';
|
||||||
$lang->play = '음성재생';
|
$lang->play = '음성재생';
|
||||||
$lang->use_and_display = '사용 + 추천내역 공개';
|
$lang->use_and_display = '사용 + 추천내역 공개';
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue