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:
authorsgiehl <stefan@matomo.org>2020-04-01 12:07:42 +0300
committersgiehl <stefan@matomo.org>2020-04-01 13:15:52 +0300
commit677fec1f635e697927d389835a3ee53554f84ff9 (patch)
treebc0d60fdac68876c0d2bc715d49b2bb53975bc82 /plugins/Marketplace
parent53cc7a4299535b481d90c45ea5fb7137a6ef9092 (diff)
parent19af9b6c0a63b07020d935ea88710c80823c9d62 (diff)
Merge branch '3.x-dev' into 4.x-dev
Diffstat (limited to 'plugins/Marketplace')
-rw-r--r--plugins/Marketplace/Api/Client.php66
1 files changed, 63 insertions, 3 deletions
diff --git a/plugins/Marketplace/Api/Client.php b/plugins/Marketplace/Api/Client.php
index b1e42b9ee9..bf8aa6e478 100644
--- a/plugins/Marketplace/Api/Client.php
+++ b/plugins/Marketplace/Api/Client.php
@@ -8,14 +8,16 @@
*/
namespace Piwik\Plugins\Marketplace\Api;
+use Piwik\Access;
+use Piwik\API\Request;
use Matomo\Cache\Lazy;
use Piwik\Common;
use Piwik\Container\StaticContainer;
+use Piwik\DataTable;
use Piwik\Filesystem;
use Piwik\Http;
use Piwik\Plugin;
use Piwik\Plugins\Marketplace\Environment;
-use Piwik\Plugins\Marketplace\Api\Service;
use Piwik\SettingsServer;
use Exception as PhpException;
use Psr\Log\LoggerInterface;
@@ -142,7 +144,7 @@ class Client
}
// in the beginning we allowed to specify a download path but this way we make sure security is always taken
- // care of and we always generate a random download filename.
+ // care of and we always generate a random download filename.Marketplace/Api/Client.php
$target = $this->getRandomTmpPluginDownloadFilename();
Filesystem::deleteFileIfExists($target);
@@ -177,8 +179,66 @@ class Client
}
$params = array('plugins' => $params);
+ $params = array('plugins' => json_encode($params));
- $hasUpdates = $this->fetch('plugins/checkUpdates', array('plugins' => json_encode($params)));
+ if ($this->service->hasAccessToken() && Plugin\Manager::getInstance()->isPluginActivated('MultiSites')) {
+ $numPageviews = 0;
+
+ try {
+ $multiSites = null;
+ Access::doAsSuperUser(function () use (&$multiSites) {
+ $multiSites = Request::processRequest('MultiSites.getAll', array(
+ 'period' => 'month',
+ 'date' => 'previous1',
+ 'showColumns' => 'nb_pageviews',
+ 'filter_limit' => -1,
+ 'filter_offset' => 0
+ ));
+ });
+
+ /** @var DataTable\Map $multiSites */
+ if ($multiSites && $multiSites->getRowsCount()) {
+ foreach ($multiSites->getDataTables() as $table) {
+ foreach ($table->getRows() as $row) {
+ $pageviews = $row->getColumn('nb_pageviews');
+ if ($pageviews) {
+ $numPageviews += $pageviews;
+ }
+ }
+ }
+ }
+
+ $numPageviews = $numPageviews / 1000;
+ if ($numPageviews < 50) {
+ $params['bucket'] = 1;
+ } elseif ($numPageviews < 100) {
+ $params['bucket'] = 2;
+ } elseif ($numPageviews < 300) {
+ $params['bucket'] = 3;
+ } elseif ($numPageviews < 600) {
+ $params['bucket'] = 4;
+ } elseif ($numPageviews < 1000) {
+ $params['bucket'] = 5;
+ } elseif ($numPageviews < 2000) {
+ $params['bucket'] = 6;
+ } elseif ($numPageviews < 5000) {
+ $params['bucket'] = 7;
+ } elseif ($numPageviews < 10000) {
+ $params['bucket'] = 8;
+ } elseif ($numPageviews < 25000) {
+ $params['bucket'] = 9;
+ } elseif ($numPageviews < 50000) {
+ $params['bucket'] = 10;
+ } else {
+ $params['bucket'] = 11;
+ }
+ } catch (\Exception $e) {
+ // igonre any error
+ }
+
+ }
+
+ $hasUpdates = $this->fetch('plugins/checkUpdates', $params);
if (empty($hasUpdates)) {
return array();