From 566cdbd91d0ef299df5fc31ea278bf3614b18916 Mon Sep 17 00:00:00 2001 From: Thomas Steur Date: Mon, 15 Sep 2014 12:08:47 +0200 Subject: refs #4996 tests should now work in case Piwik is installed in a subdirectory although could not really test it. Also encode redirect uri --- core/Tracker.php | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) (limited to 'core/Tracker.php') diff --git a/core/Tracker.php b/core/Tracker.php index 4497ec0b99..eee101a4f5 100644 --- a/core/Tracker.php +++ b/core/Tracker.php @@ -10,7 +10,7 @@ namespace Piwik; use Exception; use Piwik\Plugins\PrivacyManager\Config as PrivacyManagerConfig; -use Piwik\Plugins\SitesManager\Model; +use Piwik\Plugins\SitesManager\SiteUrls; use Piwik\Tracker\Cache; use Piwik\Tracker\Db\DbException; use Piwik\Tracker\Db\Mysqli; @@ -940,24 +940,34 @@ class Tracker return; } - $siteIds = array(); - - foreach ($this->requests as $request) { - $siteIds[] = (int) $request['idsite']; - } - - $siteIds = array_unique($siteIds); - - $model = new Model(); + $urls = new SiteUrls(); + $siteUrls = $urls->getAllCachedSiteUrls(); + $siteIds = $this->getAllSiteIdsWithinRequest(); foreach ($siteIds as $siteId) { - $siteUrls = $model->getSiteUrlsFromId($siteId); + if (empty($siteUrls[$siteId])) { + continue; + } - if (Url::isHostInUrls($host, $siteUrls)) { + if (Url::isHostInUrls($host, $siteUrls[$siteId])) { Url::redirectToUrl($redirectUrl); } } } + private function getAllSiteIdsWithinRequest() + { + if (empty($this->requests)) { + return array(); + } + + $siteIds = array(); + + foreach ($this->requests as $request) { + $siteIds[] = (int) $request['idsite']; + } + + return array_unique($siteIds); + } } -- cgit v1.2.3