diff options
author | Igor Wiedler <igor@wiedler.ch> | 2011-11-19 01:20:22 +0100 |
---|---|---|
committer | Igor Wiedler <igor@wiedler.ch> | 2011-11-19 01:20:22 +0100 |
commit | b7c4fb38de526eb446de20c0b8e54d7cf9108834 (patch) | |
tree | e5a09515fb73ca34e01736c681a733f40b2c89ba /phpBB/includes/captcha | |
parent | 3df4b83cd3306013d78b93024905a67ecc97df25 (diff) | |
parent | 5f48f55cca5d0a6a2c51cdcc8a60b475354f50b1 (diff) | |
download | forums-b7c4fb38de526eb446de20c0b8e54d7cf9108834.tar forums-b7c4fb38de526eb446de20c0b8e54d7cf9108834.tar.gz forums-b7c4fb38de526eb446de20c0b8e54d7cf9108834.tar.bz2 forums-b7c4fb38de526eb446de20c0b8e54d7cf9108834.tar.xz forums-b7c4fb38de526eb446de20c0b8e54d7cf9108834.zip |
Merge remote-tracking branch 'naderman/feature/extension-manager' into develop
* naderman/feature/extension-manager: (67 commits)
[feature/extension-manager] Removing now unused acp_search code
[feature/extension-manager] Split disabling extensions up into steps as well
[feature/extension-manager] Add documentation on caching in ext finder
[feature/extension-manager] Reference correct new module basenames in install
[feature/extension-manager] Rename default methods to core methods on finder.
[feature/extension-manager] Document what the class loader stores in cache
[feature/extension-manager] Add docblock to cached paths map in class loader
[feature/extension-manager] Clear up docs of extension related template changes
[feature/extension-manager] Use "core files" instead of "global files" in docs
[feature/extension-manager] Add docblocks to new search backend methods
[feature/extension-manager] Add docblocks to new methods in functions_module
[feature/extension-manager] Clarify comment on ext meta class instantiator
[feature/extension-manager] Add more info on suffixes in extension finder
[feature/extension-manager] Clarify is_dir parameter description
[feature/extension-manager] Clarify class finding method docblock
[feature/extension-manager] Correct default path comment & remove double strlen
[feature/extension-manager] Fix "disbale" typo in comment
[feature/extension-manager] Properly remove old ACP language loading code
[feature/extension-manager] Support extensions in subdirectories of ext/
[feature/extension-manager] Add prefix to extension meta data / install classes
...
Diffstat (limited to 'phpBB/includes/captcha')
-rw-r--r-- | phpBB/includes/captcha/captcha_factory.php | 42 | ||||
-rw-r--r-- | phpBB/includes/captcha/plugins/captcha_abstract.php | 9 |
2 files changed, 29 insertions, 22 deletions
diff --git a/phpBB/includes/captcha/captcha_factory.php b/phpBB/includes/captcha/captcha_factory.php index c2ec8c5bda..e039e92054 100644 --- a/phpBB/includes/captcha/captcha_factory.php +++ b/phpBB/includes/captcha/captcha_factory.php @@ -59,38 +59,38 @@ class phpbb_captcha_factory */ function get_captcha_types() { - global $phpbb_root_path, $phpEx; + global $phpbb_root_path, $phpEx, $phpbb_extension_manager; $captchas = array( 'available' => array(), 'unavailable' => array(), ); - $dp = @opendir($phpbb_root_path . 'includes/captcha/plugins'); + $finder = $phpbb_extension_manager->get_finder(); + $captcha_plugin_classes = $finder + ->extension_directory('/captcha') + ->suffix('_plugin') + ->core_path('includes/captcha/plugins/') + ->get_classes(); - if ($dp) + foreach ($captcha_plugin_classes as $class) { - while (($file = readdir($dp)) !== false) + // check if this class needs to be loaded in legacy mode + $old_class = preg_replace('/^phpbb_captcha_plugins_/', '', $class); + if (file_exists($phpbb_root_path . "includes/captcha/plugins/$old_class.$phpEx") && !class_exists($old_class)) { - if ((preg_match('#_plugin\.' . $phpEx . '$#', $file))) - { - $name = preg_replace('#^(.*?)_plugin\.' . $phpEx . '$#', '\1', $file); - if (!class_exists($name)) - { - include($phpbb_root_path . "includes/captcha/plugins/$file"); - } + include($phpbb_root_path . "includes/captcha/plugins/$old_class.$phpEx"); + $class = preg_replace('/_plugin$/', '', $old_class); + } - if (call_user_func(array($name, 'is_available'))) - { - $captchas['available'][$name] = call_user_func(array($name, 'get_name')); - } - else - { - $captchas['unavailable'][$name] = call_user_func(array($name, 'get_name')); - } - } + if (call_user_func(array($class, 'is_available'))) + { + $captchas['available'][$class] = call_user_func(array($class, 'get_name')); + } + else + { + $captchas['unavailable'][$class] = call_user_func(array($class, 'get_name')); } - closedir($dp); } return $captchas; diff --git a/phpBB/includes/captcha/plugins/captcha_abstract.php b/phpBB/includes/captcha/plugins/captcha_abstract.php index aea39b3123..07a0ea1279 100644 --- a/phpBB/includes/captcha/plugins/captcha_abstract.php +++ b/phpBB/includes/captcha/plugins/captcha_abstract.php @@ -22,7 +22,7 @@ if (!defined('IN_PHPBB')) * * @package VC */ -class phpbb_default_captcha +class phpbb_captcha_plugins_captcha_abstract { var $confirm_id; var $confirm_code; @@ -364,3 +364,10 @@ class phpbb_default_captcha } } + +/** +* Old class name for legacy use. The new class name is auto loadable. +*/ +class phpbb_default_captcha extends phpbb_captcha_plugins_captcha_abstract +{ +} |