public function before() { Session::$default = 'admin'; ORM_Base::$filter_mode = ORM_Base::FILTER_BACKEND; if ($this->auto_render === TRUE) { $template = $this->template; $this->template = NULL; parent::before(); $this->template = View_Admin::factory($template); } else { parent::before(); } $this->init(); }
public static function factory($uri = TRUE, HTTP_Cache $cache = NULL, $injected_routes = array()) { $request = parent::factory($uri, $cache, $injected_routes); // for admin routes $exluded_routes = array('admin', 'admin_error', 'modules'); if ($request->route() !== NULL and in_array($request->route()->route_name, $exluded_routes)) { return $request; } // for public routes $request->define_site(); ORM_Base::$filter_mode = ORM_Base::FILTER_FRONTEND; ORM_Base::$site_id = $request->site_id; ORM_Base::$site_id_master = $request->site_id_master; if ($request->route() !== NULL) { return $request; } $request_uri = $request->uri(); $request->page = $page = Page_Route::page($request->uri()); if ($page !== NULL) { $routes = array(); if ($page['type'] == 'module' and !Helper_Module::is_stanalone($page['data'])) { $routes_config = Kohana::$config->load('routes/' . $page['data'])->as_array(); $request->set_module_routes($routes_config, $page['uri_full'], $page['id'], $cache); } elseif (Helper_Module::is_stanalone($page['data'])) { /* * For controllers which no need admin side (only public contoller) * and have one action (by default is 'index') * Can have route file or default controller (controller name equal 'data' field value) */ $routes_config = Kohana::$config->load('routes/' . $page['data'])->as_array(); if (empty($routes_config)) { $name = $page['id'] . '<->standalone_page'; $uri_callback = $page['uri_full']; $defaults = array('directory' => 'standalone', 'controller' => $page['data']); $route = new Route($uri_callback); $route->defaults($defaults); $routes[$name] = $route; Route::set($name, $uri_callback)->defaults($defaults); $processed_uri = Request::process_uri($request_uri, $routes); if ($processed_uri !== NULL) { $request->set_dinamic_route($processed_uri, $cache); } } else { $request->set_module_routes($routes_config, $page['uri_full'], $page['id'], $cache); } } else { /* * For simple static pages */ $name = $page['id'] . '<->std_page'; $uri_callback = $page['uri_full']; $defaults = array('controller' => 'page', 'action' => $page['type']); $route = new Route($uri_callback); $route->defaults($defaults); $routes[$name] = $route; Route::set($name, $uri_callback)->defaults($defaults); $processed_uri = Request::process_uri($request_uri, $routes); if ($processed_uri !== NULL) { $request->set_dinamic_route($processed_uri, $cache); } } } else { Kohana::$log->add(Log::ERROR, 'Page for :uri not found. [:file][:line] ', array(':file' => Debug::path(__FILE__), ':line' => __LINE__, ':uri' => $request->uri())); throw new HTTP_Exception_404(); } return $request; }