/** * URLからサブサイトを取得する * * @param bool $direct * @return BcSite|null */ public static function findCurrent($direct = true) { $request = Router::getRequest(true); if (!$request) { $request = new CakeRequest(); } $url = $request->url; $sites = self::findAll(); if (!$sites) { return null; } $url = preg_replace('/^\\//', '', $url); $currentSite = null; foreach ($sites as $site) { if ($site->alias) { $domainKey = ''; if ($site->useSubDomain) { if ($site->domainType == 1) { $domainKey = BcUtil::getSubDomain() . '/'; } elseif ($site->domainType == 2) { $domainKey = BcUtil::getFullDomain() . '/'; } } $regex = '/^' . preg_quote($site->alias, '/') . '\\//'; if (preg_match($regex, $domainKey . $url)) { $currentSite = $site; break; } } } if (!$currentSite) { $currentSite = $sites[0]; } if (!$direct) { $subSite = self::findCurrentSub(true); if ($subSite) { $currentSite = $subSite; } } return $currentSite; }