Example #1
0
 protected function site_redirect($site_id)
 {
     if (!IS_MASTER_SITE or $site_id == SITE_ID) {
         return;
     }
     $site = Arr::get(ORM_Helper_Site::sites(), $site_id);
     if (empty($site)) {
         throw new HTTP_Exception_404();
     }
     $new_url = URL::base() . $this->request->uri();
     $new_url = Route::set_region($new_url, $site['code']);
     $this->request->redirect($new_url);
 }
Example #2
0
 public static function sites()
 {
     static $_sites;
     if (empty($_sites)) {
         $_sites = array();
         $sites_db = ORM::factory('site')->find_all();
         foreach ($sites_db as $item_db) {
             $_item = $item_db->as_array();
             $_item['uri'] = Route::set_region('', $item_db->code);
             $_sites[$item_db->id] = $_item;
         }
     }
     return $_sites;
 }
Example #3
0
 private function _staff_items($page)
 {
     $return = array();
     $url_base = $this->domain . URL::base();
     $return[] = $this->_page_item($page);
     $categories_uri = array();
     $category_link_tpl = $url_base . Page_Route::uri($page['id'], 'staff', array('category_uri' => '{category_uri}'));
     $item_link_tpl = $url_base . Page_Route::uri($page['id'], 'staff', array('category_uri' => '{category_uri}', 'name' => '{name}'));
     $_code = $this->site_code == 'moscow' ? '' : $this->site_code;
     $category_link_tpl = Route::set_region($category_link_tpl, $_code);
     $item_link_tpl = Route::set_region($item_link_tpl, $_code);
     $db_categories = ORM::factory('staff_Category')->exclude_hidden_elements($this->site_id == $this->site_id_master)->find_all();
     foreach ($db_categories as $_item) {
         $categories_uri[$_item->id] = $_item->uri;
         if ($_item->page_id == $page['id'] and $_item->site_id == $page['site_id']) {
             $return[] = array('loc' => str_replace('{category_uri}', $_item->uri, $category_link_tpl), 'changefreq' => $page['sm_changefreq'], 'priority' => $page['sm_priority']);
         }
     }
     $db_staff = ORM::factory('staff')->where('site_id', '=', $this->site_id)->and_where('page_id', '=', $page['id'])->find_all();
     $stop = $db_staff->count() <= 0;
     while (!$stop) {
         $_item = $db_staff->current();
         $stop = $_item == FALSE ? TRUE : FALSE;
         if ($_item != FALSE) {
             $_category_uri = Arr::get($categories_uri, $_item->category_id);
             if ($_category_uri == NULL) {
                 $db_staff->next();
                 continue;
             }
             $_last_mod = $_item->updated == '0000-00-00 00:00:00' ? $_item->created : $_item->updated;
             $return[] = array('loc' => str_replace(array('{category_uri}', '{name}'), array($_category_uri, $_item->uri), $item_link_tpl), 'lastmod' => $_last_mod, 'changefreq' => $page['sm_changefreq'], 'priority' => $page['sm_priority']);
         }
         $db_staff->next();
     }
     return $return;
 }