aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/acp
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes/acp')
-rw-r--r--phpBB/includes/acp/acp_board.php36
-rw-r--r--phpBB/includes/acp/acp_captcha.php111
-rw-r--r--phpBB/includes/acp/info/acp_board.php1
-rw-r--r--phpBB/includes/acp/info/acp_captcha.php38
4 files changed, 149 insertions, 37 deletions
diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php
index af5dcc6acc..011bbede7f 100644
--- a/phpBB/includes/acp/acp_board.php
+++ b/phpBB/includes/acp/acp_board.php
@@ -209,32 +209,6 @@ class acp_board
);
break;
- case 'visual':
- $display_vars = array(
- 'title' => 'ACP_VC_SETTINGS',
- 'vars' => array(
- 'legend1' => 'GENERAL_OPTIONS',
- 'enable_confirm' => array('lang' => 'VISUAL_CONFIRM_REG', 'type' => 'radio:yes_no', 'explain' => true),
- 'enable_post_confirm' => array('lang' => 'VISUAL_CONFIRM_POST', 'type' => 'radio:yes_no', 'explain' => true),
-
- 'legend2' => 'CAPTCHA_OPTIONS',
- 'policy_overlap' => array('lang' => 'CAPTCHA_OVERLAP', 'type' => 'radio:yes_no', 'explain' => false),
- 'policy_overlap_noise_pixel' => array('lang' => 'OVERLAP_NOISE_PIXEL', 'type' => 'select', 'method' => 'captcha_pixel_noise_select', 'explain' => false),
- 'policy_overlap_noise_line' => array('lang' => 'OVERLAP_NOISE_LINE', 'type' => 'radio:yes_no', 'explain' => false),
- 'policy_entropy' => array('lang' => 'CAPTCHA_ENTROPY', 'type' => 'radio:yes_no', 'explain' => false),
- 'policy_entropy_noise_pixel' => array('lang' => 'ENTROPY_NOISE_PIXEL', 'type' => 'select', 'method' => 'captcha_pixel_noise_select', 'explain' => false),
- 'policy_entropy_noise_line' => array('lang' => 'ENTROPY_NOISE_LINE', 'type' => 'radio:yes_no', 'explain' => false),
- 'policy_shape' => array('lang' => 'CAPTCHA_SHAPE', 'type' => 'radio:yes_no', 'explain' => false),
- 'policy_shape_noise_pixel' => array('lang' => 'SHAPE_NOISE_PIXEL', 'type' => 'select', 'method' => 'captcha_pixel_noise_select', 'explain' => false),
- 'policy_shape_noise_line' => array('lang' => 'SHAPE_NOISE_LINE', 'type' => 'radio:yes_no', 'explain' => false),
- 'policy_3dbitmap' => array('lang' => 'CAPTCHA_3DBITMAP', 'type' => 'radio:yes_no', 'explain' => false),
- 'policy_cells' => array('lang' => 'CAPTCHA_CELLS', 'type' => 'radio:yes_no', 'explain' => false),
- 'policy_stencil' => array('lang' => 'CAPTCHA_STENCIL', 'type' => 'radio:yes_no', 'explain' => false),
- 'policy_composite' => array('lang' => 'CAPTCHA_COMPOSITE', 'type' => 'radio:yes_no', 'explain' => false),
- )
- );
- break;
-
case 'cookie':
$display_vars = array(
'title' => 'ACP_COOKIE_SETTINGS',
@@ -622,16 +596,6 @@ class acp_board
}
/**
- * Select captcha pixel noise
- */
- function captcha_pixel_noise_select($value, $key = '')
- {
- global $user;
-
- return '<option value="0"' . (($value == 0) ? ' selected="selected"' : '') . '>' . $user->lang['NONE'] . '</option><option value="1"' . (($value == 1) ? ' selected="selected"' : '') . '>' . $user->lang['LIGHT'] . '</option><option value="2"' . (($value == 2) ? ' selected="selected"' : '') . '>' . $user->lang['MEDIUM'] . '</option><option value="3"' . (($value == 3) ? ' selected="selected"' : '') . '>' . $user->lang['HEAVY'] . '</option>';
- }
-
- /**
* Select ip validation
*/
function select_ip_check($value, $key = '')
diff --git a/phpBB/includes/acp/acp_captcha.php b/phpBB/includes/acp/acp_captcha.php
new file mode 100644
index 0000000000..dc28eb1583
--- /dev/null
+++ b/phpBB/includes/acp/acp_captcha.php
@@ -0,0 +1,111 @@
+<?php
+/**
+*
+* @package acp
+* @version $Id$
+* @copyright (c) 2005 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+*/
+
+/**
+* @package acp
+*/
+class acp_captcha
+{
+ var $u_action;
+
+ function main($id, $mode)
+ {
+ global $db, $user, $auth, $template;
+ global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
+
+ $user->add_lang('acp/board');
+
+ $config_vars = array('enable_confirm' => 'REG_ENABLE',
+ 'enable_post_confirm' => 'POST_ENABLE',
+ 'policy_overlap' => 'OVERLAP_ENABLE',
+ 'policy_overlap_noise_pixel' => 'OVERLAP_NOISE_PIXEL',
+ 'policy_overlap_noise_line' => 'OVERLAP_NOISE_LINE_ENABLE',
+ 'policy_entropy' => 'ENTROPY_ENABLE',
+ 'policy_entropy_noise_pixel' => 'ENTROPY_NOISE_PIXEL',
+ 'policy_entropy_noise_line' => 'ENTROPY_NOISE_LINE_ENABLE',
+ 'policy_shape' => 'SHAPE_ENABLE',
+ 'policy_shape_noise_pixel' => 'SHAPE_NOISE_PIXEL',
+ 'policy_shape_noise_line' => 'SHAPE_NOISE_LINE_ENABLE',
+ 'policy_3dbitmap' => 'THREEDBITMAP_ENABLE',
+ 'policy_cells' => 'CELLS_ENABLE',
+ 'policy_stencil' => 'STENCIL_ENABLE',
+ 'policy_composite' => 'COMPOSITE_ENABLE'
+ );
+
+ $policy_modules = array('policy_entropy', 'policy_3dbitmap', 'policy_overlap', 'policy_shape', 'policy_cells', 'policy_stencil', 'policy_composite');
+
+ switch ($mode)
+ {
+ case 'visual':
+ $this->tpl_name = 'acp_captcha';
+ $this->page_title = 'ACP_VC_SETTINGS';
+ $submit = request_var('submit', '');
+ if ($submit)
+ {
+ $config_vars = array_keys($config_vars);
+ foreach ($config_vars as $config_var)
+ {
+ set_config($config_var, request_var($config_var, ''));
+ }
+ trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
+ }
+ else
+ {
+ $array = array();
+
+ foreach ($config_vars as $config_var => $template_var)
+ {
+ $array[$template_var] = $config[$config_var];
+ }
+ $template->assign_vars($array);
+
+
+ if (@extension_loaded('gd'))
+ {
+ $template->assign_var('GD', true);
+ foreach ($policy_modules as $module_name)
+ {
+ $template->assign_var('U_' . strtoupper($module_name), sprintf($user->lang['CAPTCHA_EXPLAIN'], '<a href="' . append_sid("{$phpbb_root_path}/adm/index.$phpEx", 'i=captcha&amp;mode=img&amp;policy=' . $module_name) . '" target="_blank">', '</a>'));
+ }
+ if (function_exists('imagettfbbox') && function_exists('imagettftext'))
+ {
+ $template->assign_var('TTF', true);
+ }
+ }
+ }
+ break;
+
+ case 'img':
+ $policy = request_var('policy', '');
+
+ if (!@extension_loaded('gd'))
+ {
+ trigger_error($user->lang['NO_GD']);
+ }
+
+ if (($policy !== 'policy_entropy' || $policy !== 'policy_3dbitmap') && !(function_exists('imagettfbbox') && function_exists('imagettftext')))
+ {
+ trigger_error($user->lang['NO_TTF']);
+ }
+
+ if (!in_array($policy, $policy_modules))
+ {
+ trigger_error($user->lang['BAD_POLICY']);
+ }
+
+ include($phpbb_root_path . 'includes/captcha/captcha_gd.' . $phpEx);
+
+ $captcha = new captcha();
+ $captcha->execute(gen_rand_string(), $policy);
+ break;
+ }
+ }
+}
+
+?> \ No newline at end of file
diff --git a/phpBB/includes/acp/info/acp_board.php b/phpBB/includes/acp/info/acp_board.php
index a8d6d5af51..e6a2372088 100644
--- a/phpBB/includes/acp/info/acp_board.php
+++ b/phpBB/includes/acp/info/acp_board.php
@@ -27,7 +27,6 @@ class acp_board_info
'post' => array('title' => 'ACP_POST_SETTINGS', 'auth' => 'acl_a_board', 'cat' => array('ACP_BOARD_CONFIGURATION')),
'signature' => array('title' => 'ACP_SIGNATURE_SETTINGS', 'auth' => 'acl_a_board', 'cat' => array('ACP_BOARD_CONFIGURATION')),
'registration' => array('title' => 'ACP_REGISTER_SETTINGS', 'auth' => 'acl_a_board', 'cat' => array('ACP_BOARD_CONFIGURATION')),
- 'visual' => array('title' => 'ACP_VC_SETTINGS', 'auth' => 'acl_a_board', 'cat' => array('ACP_BOARD_CONFIGURATION')),
'auth' => array('title' => 'ACP_AUTH_SETTINGS', 'auth' => 'acl_a_server', 'cat' => array('ACP_CLIENT_COMMUNICATION')),
'email' => array('title' => 'ACP_EMAIL_SETTINGS', 'auth' => 'acl_a_server', 'cat' => array('ACP_CLIENT_COMMUNICATION')),
diff --git a/phpBB/includes/acp/info/acp_captcha.php b/phpBB/includes/acp/info/acp_captcha.php
new file mode 100644
index 0000000000..82fbf997f4
--- /dev/null
+++ b/phpBB/includes/acp/info/acp_captcha.php
@@ -0,0 +1,38 @@
+<?php
+/**
+*
+* @package acp
+* @version $Id$
+* @copyright (c) 2005 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+*
+*/
+
+/**
+* @package module_install
+*/
+class acp_captcha_info
+{
+ function module()
+ {
+ return array(
+ 'filename' => 'acp_captcha',
+ 'title' => 'ACP_CAPTCHA',
+ 'version' => '1.0.0',
+ 'modes' => array(
+ 'visual' => array('title' => 'ACP_VC_SETTINGS', 'auth' => 'acl_a_board', 'cat' => array('ACP_BOARD_CONFIGURATION')),
+ 'img' => array('title' => 'ACP_VC_CAPTCHA_DISPLAY', 'auth' => 'acl_a_board', 'cat' => array('ACP_BOARD_CONFIGURATION'), 'display' => false)
+ ),
+ );
+ }
+
+ function install()
+ {
+ }
+
+ function uninstall()
+ {
+ }
+}
+
+?> \ No newline at end of file