public static function getDomainId() { if (!self::$domain_id) { $domain_id = waRequest::get('domain_id'); $domains = self::getDomains(true); if (is_numeric($domain_id)) { self::$domain_id = (int) $domain_id; } else { foreach ($domains as $d_id => $d) { if ($d['name'] == $domain_id) { self::$domain_id = $d_id; break; } } } if (!self::$domain_id) { self::$domain_id = wa()->getUser()->getSettings('site', 'last_domain_id'); if (!isset($domains[self::$domain_id])) { self::$domain_id = null; } } if (!self::$domain_id) { self::$domain_id = current(array_keys($domains)); } if (self::$domain_id && !isset($domains[self::$domain_id])) { throw new waException('Domain not found', 404); } } return self::$domain_id; }