private static function initSite() { if (self::$siteList === false) { $host = self::getHostName(); $path = self::getFullPathAsString(); $current = array(); $default = array(); global $g_siteList; self::$siteList = $g_siteList; unset($g_siteList); foreach (self::$siteList as $websiteID => $website) { $lngList = $website["Language"]; $j = 0; foreach ($lngList as $lngCode => $lngDetails) { if (!isset($lngDetails['Domain'])) { send404(); } if (isset($lngDetails['Domain'][$host])) { $langDir = $lngDetails['Domain'][$host]['LangDir']; $len = strlen($website['WebDir']); if (is_array($website['ModuleList'])) { foreach ($website['ModuleList'] as $k => $module) { $website['ModuleList'][$k] = ucfirst(mb_strtolower($module)); } } else { $website['ModuleList'] = array(); } if (substr($path, 0, $len) == $website['WebDir']) { if (isset($lngDetails['Default']) && $lngDetails['Default'] == true || $j == 0) { $default['WebsiteID'] = $websiteID; $default['Folder'] = $website["Folder"]; $default['Name'] = $website["Name"]; $default['ProjectPath'] = $website['WebDir']; $default['LangCode'] = $lngDetails['Folder']; $default['LangDir'] = $langDir; $default['LanguageList'] = $lngList; $default['ModuleList'] = $website["ModuleList"]; } $len = strlen($website['WebDir'] . $langDir); if (substr($path, 0, $len) == $website['WebDir'] . $langDir) { $current['WebsiteID'] = $websiteID; $current['Folder'] = $website["Folder"]; $current['Name'] = $website["Name"]; $current['ProjectPath'] = $website['WebDir']; $current['LangCode'] = $lngDetails['Folder']; $current['LangDir'] = $langDir; $current['LanguageList'] = $lngList; $current['ModuleList'] = $website["ModuleList"]; if ($langDir != '') { break 2; } } } } $j++; } } if (count($current) == 0 && count($default) > 0) { $current = $default; } if (count($current) > 0) { define("BASE_PATH", $current['ProjectPath']); define("HTTP_HOST", 'http://' . $host . BASE_PATH); define("URL_PREFIX", BASE_PATH . $current['LangDir']); define("WEBSITE_ID", (int) $current['WebsiteID']); define("WEBSITE_FOLDER", $current['Folder']); define("WEBSITE_NAME", $current['Name']); define("LANG", $current['LangCode']); $current['DefaultModule'] = array_shift($current['ModuleList']); self::$currentSite = $current; $lngList = array(); foreach ($current['LanguageList'] as $k => $v) { if (isset($v['Domain'][$host])) { $domainInfo = $v['Domain'][$host]; } else { $domainInfo = array_shift($v['Domain']); } unset($v['Domain']); $lngList[$k] = array_merge($v, $domainInfo); } Language::setLanguageList($lngList); } else { send404(); } self::$lngFL = $current['LangCode']; } }