Beispiel #1
0
 public function apply_mode_filter()
 {
     parent::apply_mode_filter();
     if ($this->_filter_mode == ORM_Base::FILTER_FRONTEND) {
         $this->where($this->_object_name . '.public_date', '<=', date('Y-m-d H:i:00'));
     }
 }
Beispiel #2
0
 public function apply_mode_filter()
 {
     parent::apply_mode_filter();
     if ($this->_filter_mode == ORM_Base::FILTER_FRONTEND) {
         $date = date('Y-m-d H:i:00');
         $this->where($this->_object_name . '.public_date', '<=', $date)->and_where_open()->where($this->_object_name . '.close_date', '>', $date)->or_where($this->_object_name . '.close_date', '=', '0000-00-00 00:00:00')->and_where_close();
     }
 }
Beispiel #3
0
 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');
     }
 }
Beispiel #4
0
 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();
     }
 }
Beispiel #5
0
 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'];
 }
Beispiel #6
0
 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();
 }
Beispiel #7
0
 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;
 }