set_prefilter('cf_form', 'captcha_prefilter');
$template->set_filename('captcha', realpath(CAPTCHA_PATH.'captcha.tpl'));
$template->assign(array(
'CAPTCHA_HTML' => recaptcha_get_html($conf['captcha_publickey'], get_plugin_data('captcha')),
'CAPTCHA_THEME' => $conf['captcha_theme'],
)
);
$template->assign_var_from_handle('CAPTCHA', 'captcha');
}
function captcha_prefilter($content, $smarty)
{
$search = '
|
|
';
return str_replace($search, ' | {$CAPTCHA} |
'."\n".$search, $content);
}
function check_captcha($infos)
{
global $conf;
if (!is_a_guest()) return $infos;
$resp = recaptcha_check_answer(
$conf['captcha_privatekey'],
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]
);
if (!$resp->is_valid)
{
load_language('plugin.lang', CAPTCHA_PATH);
array_push($infos['errors'], l10n('Invalid Captcha'));
set_plugin_data('captcha', $resp->error);
}
return $infos;
}
?>