diff options
author | Thomas Steur <thomas.steur@googlemail.com> | 2014-09-15 14:08:47 +0400 |
---|---|---|
committer | Thomas Steur <thomas.steur@googlemail.com> | 2014-09-15 14:08:47 +0400 |
commit | 566cdbd91d0ef299df5fc31ea278bf3614b18916 (patch) | |
tree | eb51683ab2928f7e769ab4dd281eab992e5ee6ff /core/Tracker.php | |
parent | b03f7c82734b3a0121a7aa10128f4baa8ed5d8f9 (diff) |
refs #4996 tests should now work in case Piwik is installed in a subdirectory although could not really test it. Also encode redirect uri
Diffstat (limited to 'core/Tracker.php')
-rw-r--r-- | core/Tracker.php | 34 |
1 files changed, 22 insertions, 12 deletions
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); + } } |