public function before() { parent::before(); if (IS_SUPER_USER) { ORM_Base::$site_id = NULL; } else { $this->request->current()->set_param('id', SITE_ID); $this->request->current()->action('edit'); } }
public function action_generate() { $sites = ORM::factory('site')->find_all(); foreach ($sites as $item) { ORM_Base::$site_id = $item->id; $this->site_id = $item->id; $this->site_code = $item->code; $this->sitemap_directory = $this->sitemap_directory_base . DIRECTORY_SEPARATOR . $this->site_code; $this->_generate(); } }
protected function site_init() { $request = $this->request->current(); if (!Kohana::$is_cli) { $site_id = (int) $request->query('site_id'); if ($site_id and $this->acl->is_allowed($this->user, 'site_switcher', 'show')) { $request->site_id = $site_id; Session::instance()->set('SITE_ID', $site_id); } else { $site_id_sess = (int) Session::instance()->get('SITE_ID'); if (empty($site_id_sess)) { $request->site_id = (int) $this->user->site_id; Session::instance()->set('SITE_ID', $request->site_id); } else { $request->site_id = $site_id_sess; } unset($site_id_sess); } unset($site_id); $master_site = DB::select('id')->from('sites')->where('type', '=', 'master')->and_where('active', '>', 0)->and_where('delete_bit', '=', 0)->execute()->current(); if (empty($master_site)) { throw new HTTP_Exception_404(); } $request->site_id_master = (int) $master_site['id']; } $site = Arr::get(ORM_Helper_Site::sites(), $request->site_id); $this->site($site); if (!defined('IS_MASTER_SITE')) { define('IS_MASTER_SITE', $site['type'] == 'master' ? 1 : 0); } if (!defined('SITE_ID')) { define('SITE_ID', $request->site_id); } if (!defined('SITE_ID_MASTER')) { define('SITE_ID_MASTER', $request->site_id_master); } ORM_Base::$site_id = SITE_ID; ORM_Base::$site_id_master = SITE_ID_MASTER; $this->site_time['shift'] = Helper_Date::str_to_sec($site['mmt']); $this->site_time['ts'] = time() + $this->site_time['shift']; }
protected function site_init() { $site = ORM::factory('site')->find()->as_array(); $this->site($site); if ($this->request->is_initial()) { define('SITE_ID', $site['id']); } ORM_Base::$site_id = SITE_ID; }
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; }