6 * @copyright (c) 2005 phpBB Group
7 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
15 if (!defined('IN_PHPBB'))
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);
45 $config_captcha = phpbb_captcha_factory
::get_instance($selected);
46 $config_captcha->acp_page($id, $this);
50 $captchas = phpbb_captcha_factory
::get_captcha_types();
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'])
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();
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
));
93 trigger_error(phpbb
::$user->lang
['FORM_INVALID'] . adm_back_link());
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();