summaryrefslogtreecommitdiff
path: root/core/controllers/admin.php
diff options
context:
space:
mode:
Diffstat (limited to 'core/controllers/admin.php')
-rw-r--r--core/controllers/admin.php37
1 files changed, 15 insertions, 22 deletions
diff --git a/core/controllers/admin.php b/core/controllers/admin.php
index 9147059b..30e65886 100644
--- a/core/controllers/admin.php
+++ b/core/controllers/admin.php
@@ -25,32 +25,25 @@ class Admin_Controller extends Controller {
parent::__construct();
}
- public function index() {
- $theme_name = module::get_var("core", "active_admin_theme", "admin_default");
- $template = new Admin_View("admin.html", $theme_name);
- $template->content = new View("dashboard.html");
- print $template;
- }
-
- public function __call($page_name, $args) {
- $theme_name = module::get_var("core", "active_admin_theme", "admin_default");
- // For now, we have only two legal pages.
- // @todo get these pages from the modules
- switch($page_name) {
- case "users":
- $view = new Admin_View("users.html", $theme_name);
- $view->users = ORM::factory("user")->find_all();
- break;
+ public function __call($controller_name, $args) {
+ if ($controller_name == "index") {
+ $controller_name = "dashboard";
+ }
- case "dashboard":
- $view = new Admin_View("dashboard.html", $theme_name);
- break;
+ $controller = "Admin_{$controller_name}_Controller";
+ $controller = new $controller;
- default:
- Kohana::show_404();
+ if ($args) {
+ $method = array_unshift($args);
+ } else {
+ $method = "index";
}
- print $view;
+ $theme_name = module::get_var("core", "active_admin_theme", "admin_default");
+ $template = new Admin_View("admin.html", $theme_name);
+ $template->content =
+ call_user_func_array(array(new $controller, $method), $args);
+ print $template;
}
}