private static function init() { if (empty(self::$cur_lang)) { $lang_id = reg::getKey('/core/cur_lang/id'); if (!empty($lang_id)) { // Если язык в системе один, загружаем его данные из реестра $lang_prefix = reg::getKey('/core/cur_lang/prefix'); self::$langs[$lang_id] = array('l_id' => $lang_id, 'l_name' => reg::getKey('/core/cur_lang/name'), 'l_prefix' => $lang_prefix, 'id' => $lang_id); self::$langs_rel[$lang_prefix] = $lang_id; } else { // Языков много, определяем язык по URL`y if (system::issetUrl(0) && strlen(system::url(0)) < 6) { self::$cur_lang = self::get(system::url(0)); if (self::$cur_lang instanceof language) { system::clipUrl(); self::$isCliped = true; } } } if (!self::$cur_lang instanceof language) { self::$cur_lang = self::get(domains::curDomain()->getDefLang()); } if (!self::$cur_lang instanceof language) { die('не могу определить язык'); } } }
private static function init() { if (!self::$isAdmin && system::$isAdmin) { // Определяем домен для панели управления // Определяем домен по УРЛу if (system::issetUrl(0)) { $tmp_domain = self::get(str_replace('_', '.', system::url(0))); if ($tmp_domain instanceof domain) { self::$cur_domain = $tmp_domain; system::clipUrl(); languages::setCurLang(self::$cur_domain->getDefLang()); } } // Проверяем, имеет ли пользователь доступ к данному домену if (!user::issetRight(languages::curId() . ' ' . self::$cur_domain->id(), 'structure')) { //echo languages::curId().' '.self::$cur_domain->id(); $langs = languages::getAll(); $domains = domains::getAll(); if (count($langs) > 1 || count($domains) > 1) { while (list($num2, $domain) = each($domains)) { reset($langs); while (list($num1, $lang) = each($langs)) { if (user::issetRight($lang['l_id'] . ' ' . $domain['d_id'], 'structure')) { $link = ADMIN_URL; if ($domain['d_id'] != 1) { $link .= '/' . str_replace('.', '_', $domain['d_name']); } if ($lang['l_id'] != 1) { $link = '/' . $lang['l_prefix'] . $link; } system::redirect($link, true); } } } } } self::$isAdmin = true; } else { if (empty(self::$cur_domain)) { // Опеделяем домен для сайта $domain_id = reg::getKey('/core/cur_domain/id'); if (!empty($domain_id)) { // Если домен в системе один, загружаем его данные из реестра $domain_name = reg::getKey('/core/cur_domain/name'); self::$domains[$domain_id] = array('d_id' => $domain_id, 'd_name' => $domain_name, 'd_domain_id' => '', 'd_def_lang' => reg::getKey('/core/cur_domain/def_lang'), 'd_sitename' => reg::getKey('/core/cur_domain/sitename'), 'd_email' => reg::getKey('/core/cur_domain/email'), 'd_online' => reg::getKey('/core/cur_domain/online'), 'd_offline_msg' => reg::getKey('/core/cur_domain/offline_msg'), 'd_error_msg' => reg::getKey('/core/cur_domain/error_msg'), 'id' => $domain_id); self::$domains_rel[$domain_name] = $domain_id; } else { $serv_name = $_SERVER['HTTP_HOST']; if (substr($serv_name, 0, 4) == 'www.') { $serv_name = substr($serv_name, 4, strlen($serv_name) - 4); } self::$cur_domain = self::get($serv_name); } if (!self::$cur_domain instanceof domain) { self::$cur_domain = self::get(1); } if (!self::$cur_domain instanceof domain) { die('не могу определить домен'); } self::$cur_site_domain = self::$cur_domain; } } }