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); }
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; }
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; }