theme_name = module::get_var("core", "active_admin_theme"); if (user::active()->admin) { $this->theme_name = Input::instance()->get("theme", $this->theme_name); } $this->sidebar = ""; $this->set_global("theme", $this); $this->set_global("user", user::active()); } public function url($path, $absolute_url=false) { $arg = "themes/{$this->theme_name}/$path"; return $absolute_url ? url::abs_file($arg) : url::file($arg); } public function display($page_name, $view_class="View") { return new $view_class($page_name); } public function admin_menu() { $menu = Menu::factory("root"); core_menu::admin($menu, $this); foreach (module::active() as $module) { if ($module->name == "core") { continue; } $class = "{$module->name}_menu"; if (method_exists($class, "admin")) { call_user_func_array(array($class, "admin"), array(&$menu, $this)); } } print $menu; } /** * Print out any site wide status information. */ public function site_status() { return site_status::get(); } /** * Print out any messages waiting for this user. */ public function messages() { return message::get(); } /** * Handle all theme functions that insert module content. */ public function __call($function, $args) { switch ($function) { case "admin_credits"; case "admin_footer": case "admin_header_top": case "admin_header_bottom": case "admin_page_bottom": case "admin_page_top": case "admin_head": $blocks = array(); foreach (module::active() as $module) { $helper_class = "{$module->name}_theme"; if (method_exists($helper_class, $function)) { $blocks[] = call_user_func_array( array($helper_class, $function), array_merge(array($this), $args)); } } if (Session::instance()->get("debug")) { if ($function != "admin_head") { array_unshift( $blocks, "