Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Steur <thomas.steur@googlemail.com>2014-09-15 14:08:47 +0400
committerThomas Steur <thomas.steur@googlemail.com>2014-09-15 14:08:47 +0400
commit566cdbd91d0ef299df5fc31ea278bf3614b18916 (patch)
treeeb51683ab2928f7e769ab4dd281eab992e5ee6ff /core/Tracker.php
parentb03f7c82734b3a0121a7aa10128f4baa8ed5d8f9 (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.php34
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);
+ }
}