diff --git a/bl-kernel/admin/themes/booty/index.php b/bl-kernel/admin/themes/booty/index.php index 9f0ab96f..2972c3ae 100644 --- a/bl-kernel/admin/themes/booty/index.php +++ b/bl-kernel/admin/themes/booty/index.php @@ -80,8 +80,8 @@ adminView(); + } else if (!empty($layout['plugin']) && method_exists($layout['plugin'], 'adminView')) { + echo $layout['plugin']->adminView(); } else { echo '

'.$L->g('Page not found').'

'; echo '

'.$L->g('Choose a page from the sidebar.').'

'; diff --git a/bl-kernel/boot/admin.php b/bl-kernel/boot/admin.php index 25d6239c..16d6cd39 100644 --- a/bl-kernel/boot/admin.php +++ b/bl-kernel/boot/admin.php @@ -13,18 +13,24 @@ $layout = array( 'view'=>null, 'template'=>'index.php', 'slug'=>null, + 'plugin'=>false, 'parameters'=>null, 'title'=>'Bludit' ); -// Get the view, controller, and the parameters from the URL. +// Get the Controller $explodeSlug = $url->explodeSlug(); $layout['controller'] = $layout['view'] = $layout['slug'] = empty($explodeSlug[0])?'dashboard':$explodeSlug[0]; unset($explodeSlug[0]); -$layout['parameters'] = implode('/', $explodeSlug); -// Boot plugins rules +// Get the Plugin include(PATH_RULES.'60.plugins.php'); +if ($layout['controller'] === 'plugin' && !empty($explodeSlug)) { + $layout['plugin'] = getPlugin(array_shift($explodeSlug)); +} + +// Get the URL parameters +$layout['parameters'] = implode('/', $explodeSlug); // --- AJAX --- if ($layout['slug']==='ajax') { @@ -63,8 +69,8 @@ else } // Define variables - $ADMIN_CONTROLLER = $layout['controller']; - $ADMIN_VIEW = $layout['view']; + $ADMIN_CONTROLLER = $layout['controller']; + $ADMIN_VIEW = $layout['view']; // Load plugins before the admin area will be load. Theme::plugins('beforeAdminLoad'); @@ -77,10 +83,8 @@ else // Load controller. if (Sanitize::pathFile(PATH_ADMIN_CONTROLLERS, $layout['controller'].'.php')) { include(PATH_ADMIN_CONTROLLERS.$layout['controller'].'.php'); - } else if (($plugin = getPlugin($layout['controller'])) !== false) { - if (method_exists($plugin, "adminController") && method_exists($plugin, "adminView")) { - $plugin->adminController(); - } + } else if(!empty($layout['plugin']) && method_exists($layout['plugin'], 'adminController')) { + $layout['plugin']->adminController(); } // Load view and theme.