register(); //Load environment variables from config if exists $envDir = rtrim(dirname(dirname(__DIR__)), '/') . '/config'; if (is_dir($envDir)) { $dotenv = new \Dotenv\Dotenv($envDir); $dotenv->load(); } extract_site_request_uri_variables(); function extract_site_request_uri_variables() { $site_base_pattern = '#/mysyde/([^/]+)/([^/]+)/([^/]+/){0,1}([^/]+/){0,1}([^/]+/){0,1}([^/]+/){0,1}([^/]+/){0,1}#'; $site_base_pattern_matches = []; preg_match($site_base_pattern, $_SERVER['REQUEST_URI'], $site_base_pattern_matches); if ( array_key_exists(1, $site_base_pattern_matches) && !empty($site_base_pattern_matches[1]) && array_key_exists(2, $site_base_pattern_matches) && !empty($site_base_pattern_matches[2]) ) { $_GET['site'] = filter_var($site_base_pattern_matches[1], FILTER_SANITIZE_STRING); if (empty($_GET['site'])) { $_GET['site'] = get_site_code_from_domain(); } $_GET['language'] = filter_var($site_base_pattern_matches[2], FILTER_SANITIZE_STRING); //Try to max category level 5 (index 3 to 8) $noOfPathSegments = count($site_base_pattern_matches); if ($noOfPathSegments > 6) { $noOfPathSegments = 6; } for ($i = 3; $i <= $noOfPathSegments; $i++) { $levelindex = $i - 2; $matchedPattern = array_key_exists($i, $site_base_pattern_matches) ? $site_base_pattern_matches[$i] : ''; $code = filter_var(rtrim($matchedPattern, '/'), FILTER_SANITIZE_STRING); $_GET['level_' . $levelindex] = $code; } } if (empty($_GET['site'])) { $_GET['site'] = get_site_code_from_domain(); } } function get_site_code_from_domain() { $prepStatement = 'SELECT id,code FROM main_site WHERE site_url = :domain ORDER BY id LIMIT 1'; $siteDomain = $_SERVER['SERVER_NAME']; $siteCode = ''; $dbHost = getenv('MAIN_MYSQL_DB_HOST'); $dbPort = (int)getenv('MAIN_MYSQL_DB_PORT'); $dbUser = getenv('MAIN_MYSQL_DB_USER'); $dbSchema = getenv('MAIN_MYSQL_DB_SCHEMA'); $dbPass = getenv('MAIN_MYSQL_DB_PASS'); try { $pdo = new \DynCom\mysyde\common\classes\PDOQueryWrapper($dbHost, $dbPort, $dbSchema, $dbUser, $dbPass); $params = [ [':domain', $siteDomain, PDO::PARAM_STR], ]; $pdo->setQuery($prepStatement); $pdo->prepareQuery(); $pdo->bindParameters($params); $pdo->executePreparedStatement(); $resArr = $pdo->getResultArray(); if (array_key_exists(0, $resArr) && array_key_exists('id', $resArr[0]) && $resArr[0]['id'] > 0) { $siteCode = $resArr[0]['code']; } } catch (Exception $e) { //Do noting } return $siteCode; } $forgetError = ''; ?> <?= admin_site_title() ?> ">