Update code_sniffer build.xml file to be executable on our system
[phpbb.git] / phpBB / modules / acp / acp_captcha.php
blob3ffefa85a1dee858fe502d66458cbb7dd87049c2
1 <?php
2 /**
4 * @package acp
5 * @version $Id$
6 * @copyright (c) 2005 phpBB Group
7 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
8 */
10 /**
11 * @ignore
15 if (!defined('IN_PHPBB'))
17 exit;
20 /**
21 * @package acp
23 class acp_captcha
25 var $u_action;
27 function main($id, $mode)
29 phpbb::$user->add_lang('acp/board');
31 include(PHPBB_ROOT_PATH . 'includes/captcha/captcha_factory.' . PHP_EXT);
33 $selected = request_var('select_captcha', phpbb::$config['captcha_plugin']);
34 $configure = request_var('configure', false);
36 // Oh, they are just here for the view
37 if (phpbb_request::is_set('captcha_demo', phpbb_request::GET))
39 $this->deliver_demo($selected);
42 // Delegate
43 if ($configure)
45 $config_captcha = phpbb_captcha_factory::get_instance($selected);
46 $config_captcha->acp_page($id, $this);
48 else
50 $captchas = phpbb_captcha_factory::get_captcha_types();
52 $config_vars = array(
53 'enable_confirm' => 'REG_ENABLE',
54 'enable_post_confirm' => 'POST_ENABLE',
55 'confirm_refresh' => 'CONFIRM_REFRESH',
56 'captcha_gd' => 'CAPTCHA_GD',
59 $this->tpl_name = 'acp_captcha';
60 $this->page_title = 'ACP_VC_SETTINGS';
61 $form_key = 'acp_captcha';
62 add_form_key($form_key);
64 $submit = request_var('main_submit', false);
66 if ($submit && check_form_key($form_key))
68 $config_vars = array_keys($config_vars);
69 foreach ($config_vars as $config_var)
71 set_config($config_var, request_var($config_var, false));
73 if ($selected !== phpbb::$config['captcha_plugin'])
75 // sanity check
76 if (isset($captchas['available'][$selected]))
78 $old_captcha = phpbb_captcha_factory::get_instance(phpbb::$config['captcha_plugin']);
79 $old_captcha->uninstall();
80 set_config('captcha_plugin', $selected);
81 $new_captcha = phpbb_captcha_factory::get_instance(phpbb::$config['captcha_plugin']);
82 $new_captcha->install();
84 else
86 trigger_error(phpbb::$user->lang['CAPTCHA_UNAVAILABLE'] . adm_back_link($this->u_action));
89 trigger_error(phpbb::$user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
91 else if ($submit)
93 trigger_error(phpbb::$user->lang['FORM_INVALID'] . adm_back_link());
95 else
97 $captcha_select = '';
98 foreach ($captchas['available'] as $value => $title)
100 $current = ($selected !== false && $value == $selected) ? ' selected="selected"' : '';
101 $captcha_select .= '<option value="' . $value . '"' . $current . '>' . phpbb::$user->lang[$title] . '</option>';
103 foreach ($captchas['unavailable'] as $value => $title)
105 $captcha_select .= '<option value="' . $value . '"' . $current . ' class="disabled-option" >' . phpbb::$user->lang[$title] . '</option>';
108 $demo_captcha = phpbb_captcha_factory::get_instance($selected);
110 foreach ($config_vars as $config_var => $template_var)
112 phpbb::$template->assign_var($template_var, request_var($config_var, phpbb::$config[$config_var])) ;
115 phpbb::$template->assign_vars(array(
116 'CAPTCHA_PREVIEW' => $demo_captcha->get_demo_template($id),
117 'CAPTCHA_SELECT' => $captcha_select,
126 * Entry point for delivering image CAPTCHAs in the ACP.
128 function deliver_demo($selected)
130 $captcha = phpbb_captcha_factory::get_instance($selected);
131 $captcha->init(CONFIRM_REG);
132 $captcha->execute_demo();
133 garbage_collection();
134 exit_handler();