[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/includes/acp/ -> acp_captcha.php (source)

   1  <?php
   2  /**
   3  *
   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  */
   9  
  10  /**
  11  * @ignore
  12  */
  13  if (!defined('IN_PHPBB'))
  14  {
  15      exit;
  16  }
  17  
  18  /**
  19  * @package acp
  20  */
  21  class acp_captcha
  22  {
  23      var $u_action;
  24  
  25  	function main($id, $mode)
  26      {
  27          global $db, $user, $auth, $template;
  28          global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
  29  
  30          $user->add_lang('acp/board');
  31  
  32          include($phpbb_root_path . 'includes/captcha/captcha_factory.' . $phpEx);
  33          $captchas = phpbb_captcha_factory::get_captcha_types();
  34  
  35          $selected = request_var('select_captcha', $config['captcha_plugin']);
  36          $selected = (isset($captchas['available'][$selected]) || isset($captchas['unavailable'][$selected])) ? $selected : $config['captcha_plugin'];
  37          $configure = request_var('configure', false);
  38  
  39  
  40          // Oh, they are just here for the view
  41          if (isset($_GET['captcha_demo']))
  42          {
  43              $this->deliver_demo($selected);
  44          }
  45  
  46          // Delegate
  47          if ($configure)
  48          {
  49              $config_captcha =& phpbb_captcha_factory::get_instance($selected);
  50              $config_captcha->acp_page($id, $this);
  51          }
  52          else
  53          {
  54              $config_vars = array(
  55                  'enable_confirm'        => array('tpl' => 'REG_ENABLE', 'default' => false),
  56                  'enable_post_confirm'    => array('tpl' => 'POST_ENABLE', 'default' => false),
  57                  'confirm_refresh'        => array('tpl' => 'CONFIRM_REFRESH', 'default' => false),
  58                  'max_reg_attempts'        => array('tpl' => 'REG_LIMIT', 'default' => 0),
  59                  'max_login_attempts'        => array('tpl' => 'MAX_LOGIN_ATTEMPTS', 'default' => 0),
  60              );
  61  
  62              $this->tpl_name = 'acp_captcha';
  63              $this->page_title = 'ACP_VC_SETTINGS';
  64              $form_key = 'acp_captcha';
  65              add_form_key($form_key);
  66  
  67              $submit = request_var('main_submit', false);
  68  
  69              if ($submit && check_form_key($form_key))
  70              {
  71                  foreach ($config_vars as $config_var => $options)
  72                  {
  73                      set_config($config_var, request_var($config_var, $options['default']));
  74                  }
  75  
  76                  if ($selected !== $config['captcha_plugin'])
  77                  {
  78                      // sanity check
  79                      if (isset($captchas['available'][$selected]))
  80                      {
  81                          $old_captcha =& phpbb_captcha_factory::get_instance($config['captcha_plugin']);
  82                          $old_captcha->uninstall();
  83  
  84                          set_config('captcha_plugin', $selected);
  85                          $new_captcha =& phpbb_captcha_factory::get_instance($config['captcha_plugin']);
  86                          $new_captcha->install();
  87  
  88                          add_log('admin', 'LOG_CONFIG_VISUAL');
  89                      }
  90                      else
  91                      {
  92                          trigger_error($user->lang['CAPTCHA_UNAVAILABLE'] . adm_back_link($this->u_action), E_USER_WARNING);
  93                      }
  94                  }
  95                  trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
  96              }
  97              else if ($submit)
  98              {
  99                  trigger_error($user->lang['FORM_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING);
 100              }
 101              else
 102              {
 103                  $captcha_select = '';
 104                  foreach ($captchas['available'] as $value => $title)
 105                  {
 106                      $current = ($selected !== false && $value == $selected) ? ' selected="selected"' : '';
 107                      $captcha_select .= '<option value="' . $value . '"' . $current . '>' . $user->lang[$title] . '</option>';
 108                  }
 109  
 110                  foreach ($captchas['unavailable'] as $value => $title)
 111                  {
 112                      $current = ($selected !== false && $value == $selected) ? ' selected="selected"' : '';
 113                      $captcha_select .= '<option value="' . $value . '"' . $current . ' class="disabled-option">' . $user->lang[$title] . '</option>';
 114                  }
 115  
 116                  $demo_captcha =& phpbb_captcha_factory::get_instance($selected);
 117  
 118                  foreach ($config_vars as $config_var => $options)
 119                  {
 120                      $template->assign_var($options['tpl'], (isset($_POST[$config_var])) ? request_var($config_var, $options['default']) : $config[$config_var]) ;
 121                  }
 122  
 123                  $template->assign_vars(array(
 124                      'CAPTCHA_PREVIEW_TPL'    => $demo_captcha->get_demo_template($id),
 125                      'S_CAPTCHA_HAS_CONFIG'    => $demo_captcha->has_config(),
 126                      'CAPTCHA_SELECT'        => $captcha_select,
 127  
 128                      'U_ACTION'                => $this->u_action,
 129                  ));
 130              }
 131          }
 132      }
 133  
 134      /**
 135      * Entry point for delivering image CAPTCHAs in the ACP.
 136      */
 137  	function deliver_demo($selected)
 138      {
 139          global $db, $user, $config;
 140  
 141          $captcha =& phpbb_captcha_factory::get_instance($selected);
 142          $captcha->init(CONFIRM_REG);
 143          $captcha->execute_demo();
 144  
 145          garbage_collection();
 146          exit_handler();
 147      }
 148  }
 149  
 150  ?>


Generated: Wed Oct 2 15:03:47 2013 Cross-referenced by PHPXref 0.7.1