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 <tsteur@users.noreply.github.com>2019-06-27 14:44:24 +0300
committerGitHub <noreply@github.com>2019-06-27 14:44:24 +0300
commitc167963872278ab53d47839567a963dd65bef09e (patch)
tree0afe6b262d285c45f053e333782ed640d2fafa28
parent7a93a2b5ff683e7bb27339502a60c00add9fe26e (diff)
Provide methods to force the update of tracker caches (#14578)
* Provide methods to force the update of tracker caches * delete tracker cache more often * delete only needed cache * invalidate cache when hosts change
-rw-r--r--core/Tracker/Cache.php32
-rw-r--r--plugins/CoreAdminHome/SystemSettings.php6
-rw-r--r--plugins/PrivacyManager/PrivacyManager.php3
-rw-r--r--plugins/UsersManager/API.php4
4 files changed, 44 insertions, 1 deletions
diff --git a/core/Tracker/Cache.php b/core/Tracker/Cache.php
index 17a0b1700d..69fe39e78a 100644
--- a/core/Tracker/Cache.php
+++ b/core/Tracker/Cache.php
@@ -66,13 +66,33 @@ class Cache
}
$cache = self::getCache();
- $cacheId = $idSite;
+ $cacheId = self::getCacheKeyWebsiteAttributes($idSite);
$cacheContent = $cache->fetch($cacheId);
if (false !== $cacheContent) {
return $cacheContent;
}
+ return self::updateCacheWebsiteAttributes($idSite);
+ }
+
+ private static function getCacheKeyWebsiteAttributes($idSite)
+ {
+ return $idSite;
+ }
+
+ /**
+ * Updates the website specific tracker cache containing data about the website: goals, URLs, etc.
+ *
+ * @param int $idSite
+ *
+ * @return array
+ */
+ public static function updateCacheWebsiteAttributes($idSite)
+ {
+ $cache = self::getCache();
+ $cacheId = self::getCacheKeyWebsiteAttributes($idSite);
+
Tracker::initCorePiwikInTrackerMode();
$content = array();
@@ -133,6 +153,16 @@ class Cache
return $cacheContent;
}
+ return self::updateGeneralCache();
+ }
+
+ /**
+ * Updates the contents of the general (global) cache.
+ *
+ * @return array
+ */
+ public static function updateGeneralCache()
+ {
Tracker::initCorePiwikInTrackerMode();
$cacheContent = array(
'isBrowserTriggerEnabled' => Rules::isBrowserTriggerEnabled(),
diff --git a/plugins/CoreAdminHome/SystemSettings.php b/plugins/CoreAdminHome/SystemSettings.php
index d998033337..ecf192645a 100644
--- a/plugins/CoreAdminHome/SystemSettings.php
+++ b/plugins/CoreAdminHome/SystemSettings.php
@@ -12,6 +12,7 @@ use Piwik\Piwik;
use Piwik\Plugins\CoreAdminHome\Controller as CoreAdminController;
use Piwik\Settings\Setting;
use Piwik\Settings\FieldConfig;
+use Piwik\Tracker\Cache;
class SystemSettings extends \Piwik\Settings\Plugin\SystemSettings
{
@@ -62,4 +63,9 @@ class SystemSettings extends \Piwik\Settings\Plugin\SystemSettings
});
}
+ public function save()
+ {
+ parent::save();
+ Cache::deleteTrackerCache();
+ }
}
diff --git a/plugins/PrivacyManager/PrivacyManager.php b/plugins/PrivacyManager/PrivacyManager.php
index 8d4704203a..70e7c09bad 100644
--- a/plugins/PrivacyManager/PrivacyManager.php
+++ b/plugins/PrivacyManager/PrivacyManager.php
@@ -25,6 +25,7 @@ use Piwik\Plugin;
use Piwik\Plugins\Goals\Archiver;
use Piwik\Plugins\Installation\FormDefaultSettings;
use Piwik\Site;
+use Piwik\Tracker\Cache;
use Piwik\Tracker\GoalManager;
use Piwik\View;
@@ -318,6 +319,8 @@ class PrivacyManager extends Plugin
Option::set($configName, $settings[$configName]);
}
}
+
+ Cache::deleteTrackerCache();
}
/**
diff --git a/plugins/UsersManager/API.php b/plugins/UsersManager/API.php
index 2696c9ffe2..5980e75cb1 100644
--- a/plugins/UsersManager/API.php
+++ b/plugins/UsersManager/API.php
@@ -730,6 +730,8 @@ class API extends \Piwik\Plugin\API
$this->model->deleteUserAccess($userLogin);
$this->model->setSuperUserAccess($userLogin, $hasSuperUserAccess);
+
+ Cache::deleteTrackerCache();
}
/**
@@ -850,6 +852,8 @@ class API extends \Piwik\Plugin\API
$userLogin,
$this->createTokenAuth($userLogin)
);
+
+ Cache::deleteTrackerCache();
}
/**