aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/index.php
diff options
context:
space:
mode:
authorIgor Wiedler <igor@wiedler.ch>2012-04-07 18:27:30 +0200
committerIgor Wiedler <igor@wiedler.ch>2012-04-07 18:27:30 +0200
commit24daef1aafb0a733c3428122d740fea17d4f34a0 (patch)
tree19338a7c549089437f2f9cb708f6afb8a26e733a /phpBB/index.php
parent3963b39634225a68687cf1b817a47ae1eeb6ac79 (diff)
parent713e7129e2dfb1039f5198c03c8808c8410f434a (diff)
downloadforums-24daef1aafb0a733c3428122d740fea17d4f34a0.tar
forums-24daef1aafb0a733c3428122d740fea17d4f34a0.tar.gz
forums-24daef1aafb0a733c3428122d740fea17d4f34a0.tar.bz2
forums-24daef1aafb0a733c3428122d740fea17d4f34a0.tar.xz
forums-24daef1aafb0a733c3428122d740fea17d4f34a0.zip
Merge branch 'develop' into feature/avatars
* develop: (335 commits) [ticket/10575] Adding public visibility to the methods. [ticket/10575] Fixing non-static access to static functions get_instance [ticket/10547] User is not logged in as admin after installation [ticket/10650] Revert merge of 'rahulr92/ticket/10650' into develop [ticket/10650] Added checking for empty subjects [ticket/10650] Corrected intendation [ticket/10650]Added permission checking and utf8 functions [ticket/10650] Cropped subject and inserted newline [ticket/10650] Corrected space before true [ticket/10650] Changed language files and forumlist [ticket/10650] Added static sql files [ticket/10650] Displaying last topic on forum list [ticket/10760] Fix numbering in php fun facts. [ticket/10760] Value must be quoted as it might be two words. [ticket/10760] PHP is great. This commit is the proof. [ticket/10760] Catch both versions of parse error output in php. [ticket/10607] Added 'Powered by' translation string. [ticket/10760] Account for display_errors=stderr in pre-commit hook. [ticket/10760] Quote PHP_BIN when using it. [ticket/10760] Use echo -e only if echo understands -e. ...
Diffstat (limited to 'phpBB/index.php')
-rw-r--r--phpBB/index.php40
1 files changed, 38 insertions, 2 deletions
diff --git a/phpBB/index.php b/phpBB/index.php
index f1243bb336..9a57105d57 100644
--- a/phpBB/index.php
+++ b/phpBB/index.php
@@ -17,12 +17,48 @@ define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
-include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
-$user->setup('viewforum');
+$user->setup();
+
+// Handle the display of extension front pages
+if ($ext = $request->variable('ext', ''))
+{
+ $class = 'phpbb_ext_' . str_replace('/', '_', $ext) . '_controller';
+
+ if (!$phpbb_extension_manager->available($ext))
+ {
+ send_status_line(404, 'Not Found');
+ trigger_error($user->lang('EXTENSION_DOES_NOT_EXIST', $ext));
+ }
+ else if (!$phpbb_extension_manager->enabled($ext))
+ {
+ send_status_line(404, 'Not Found');
+ trigger_error($user->lang('EXTENSION_DISABLED', $ext));
+ }
+ else if (!class_exists($class))
+ {
+ send_status_line(404, 'Not Found');
+ trigger_error($user->lang('EXTENSION_CONTROLLER_MISSING', $ext));
+ }
+
+ $controller = new $class;
+
+ if (!($controller instanceof phpbb_extension_controller_interface))
+ {
+ send_status_line(500, 'Internal Server Error');
+ trigger_error($user->lang('EXTENSION_CLASS_WRONG_TYPE', $class));
+ }
+
+ $controller->handle();
+ exit_handler();
+}
+
+include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
+
+$user->add_lang('viewforum');
display_forums('', $config['load_moderators']);