set_prefilter('register', '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($errors) { global $conf; $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($errors, l10n('Invalid Captcha')); set_plugin_data('captcha', $resp->error); } return $errors; } function captcha_plugin_admin_menu($menu) { global $page,$conf; if ( (empty($conf['captcha_publickey']) or empty($conf['captcha_publickey'])) and in_array($page['page'], array('intro','plugins_list')) ) { load_language('plugin.lang', CAPTCHA_PATH); $page['errors'][] = l10n('You need to define Captcha keys'); } array_push($menu, array( 'NAME' => 'Captcha', 'URL' => get_admin_plugin_menu_link(dirname(__FILE__).'/admin.php') ) ); return $menu; } ?>