diff options
author | Nils Adermann <naderman@naderman.de> | 2013-07-13 16:44:38 -0400 |
---|---|---|
committer | Nils Adermann <naderman@naderman.de> | 2013-07-13 16:47:25 -0400 |
commit | 9f5ee08bae0bd13352dd7a5e59ec959bc17702d4 (patch) | |
tree | 0a7b64d4cbbde57527316d5906896b2611612aa0 /phpBB/includes | |
parent | fd2c309aa7d0266baf78ce0d3ab7f75f70011b1a (diff) | |
download | forums-9f5ee08bae0bd13352dd7a5e59ec959bc17702d4.tar forums-9f5ee08bae0bd13352dd7a5e59ec959bc17702d4.tar.gz forums-9f5ee08bae0bd13352dd7a5e59ec959bc17702d4.tar.bz2 forums-9f5ee08bae0bd13352dd7a5e59ec959bc17702d4.tar.xz forums-9f5ee08bae0bd13352dd7a5e59ec959bc17702d4.zip |
[ticket/11690] Old module class names may get autoloaded by class_exists
PHPBB3-11690
Diffstat (limited to 'phpBB/includes')
-rw-r--r-- | phpBB/includes/acp/acp_modules.php | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/phpBB/includes/acp/acp_modules.php b/phpBB/includes/acp/acp_modules.php index ab416fb406..a1e681b29c 100644 --- a/phpBB/includes/acp/acp_modules.php +++ b/phpBB/includes/acp/acp_modules.php @@ -575,13 +575,20 @@ class acp_modules // format. phpbb_acp_info_acp_foo needs to be turned into // acp_foo_info and the respective file has to be included // manually because it does not support auto loading - if (!class_exists($info_class)) + $old_info_class_file = str_replace("phpbb_{$module_class}_info_", '', $cur_module); + $old_info_class = $old_info_class_file . '_info'; + + if (class_exists($old_info_class)) + { + $info_class = $old_info_class; + } + else if (!class_exists($info_class)) { - $info_class_file = str_replace("phpbb_{$module_class}_info_", '', $cur_module); - $info_class = $info_class_file . '_info'; - if (!class_exists($info_class) && file_exists($directory . $info_class_file . '.' . $phpEx)) + $info_class = $old_info_class; + // need to check class exists again because previous checks triggered autoloading + if (!class_exists($info_class) && file_exists($directory . $old_info_class_file . '.' . $phpEx)) { - include($directory . $info_class_file . '.' . $phpEx); + include($directory . $old_info_class_file . '.' . $phpEx); } } |