Beispiel #1
0
 function main($id, $mode)
 {
     global $db, $user, $auth, $template;
     global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
     $user->add_lang('acp/board');
     include $phpbb_root_path . 'includes/captcha/captcha_factory.' . $phpEx;
     $captchas = phpbb_captcha_factory::get_captcha_types();
     $selected = request_var('select_captcha', $config['captcha_plugin']);
     $selected = isset($captchas['available'][$selected]) || isset($captchas['unavailable'][$selected]) ? $selected : $config['captcha_plugin'];
     $configure = request_var('configure', false);
     // Oh, they are just here for the view
     if (isset($_GET['captcha_demo'])) {
         $this->deliver_demo($selected);
     }
     // Delegate
     if ($configure) {
         $config_captcha =& phpbb_captcha_factory::get_instance($selected);
         $config_captcha->acp_page($id, $this);
     } else {
         $config_vars = array('enable_confirm' => array('tpl' => 'REG_ENABLE', 'default' => false), 'enable_post_confirm' => array('tpl' => 'POST_ENABLE', 'default' => false), 'confirm_refresh' => array('tpl' => 'CONFIRM_REFRESH', 'default' => false), 'max_reg_attempts' => array('tpl' => 'REG_LIMIT', 'default' => 0));
         $this->tpl_name = 'acp_captcha';
         $this->page_title = 'ACP_VC_SETTINGS';
         $form_key = 'acp_captcha';
         add_form_key($form_key);
         $submit = request_var('main_submit', false);
         if ($submit && check_form_key($form_key)) {
             foreach ($config_vars as $config_var => $options) {
                 set_config($config_var, request_var($config_var, $options['default']));
             }
             if ($selected !== $config['captcha_plugin']) {
                 // sanity check
                 if (isset($captchas['available'][$selected])) {
                     $old_captcha =& phpbb_captcha_factory::get_instance($config['captcha_plugin']);
                     $old_captcha->uninstall();
                     set_config('captcha_plugin', $selected);
                     $new_captcha =& phpbb_captcha_factory::get_instance($config['captcha_plugin']);
                     $new_captcha->install();
                     add_log('admin', 'LOG_CONFIG_VISUAL');
                 } else {
                     trigger_error($user->lang['CAPTCHA_UNAVAILABLE'] . adm_back_link($this->u_action));
                 }
             }
             trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
         } else {
             if ($submit) {
                 trigger_error($user->lang['FORM_INVALID'] . adm_back_link());
             } else {
                 $captcha_select = '';
                 foreach ($captchas['available'] as $value => $title) {
                     $current = $selected !== false && $value == $selected ? ' selected="selected"' : '';
                     $captcha_select .= '<option value="' . $value . '"' . $current . '>' . $user->lang[$title] . '</option>';
                 }
                 foreach ($captchas['unavailable'] as $value => $title) {
                     $current = $selected !== false && $value == $selected ? ' selected="selected"' : '';
                     $captcha_select .= '<option value="' . $value . '"' . $current . ' class="disabled-option">' . $user->lang[$title] . '</option>';
                 }
                 $demo_captcha =& phpbb_captcha_factory::get_instance($selected);
                 foreach ($config_vars as $config_var => $options) {
                     $template->assign_var($options['tpl'], isset($_POST[$config_var]) ? request_var($config_var, $options['default']) : $config[$config_var]);
                 }
                 $template->assign_vars(array('CAPTCHA_PREVIEW_TPL' => $demo_captcha->get_demo_template($id), 'S_CAPTCHA_HAS_CONFIG' => $demo_captcha->has_config(), 'CAPTCHA_SELECT' => $captcha_select));
             }
         }
     }
 }