diff options
author | sgiehl <stefan@matomo.org> | 2020-04-01 12:07:42 +0300 |
---|---|---|
committer | sgiehl <stefan@matomo.org> | 2020-04-01 13:15:52 +0300 |
commit | 677fec1f635e697927d389835a3ee53554f84ff9 (patch) | |
tree | bc0d60fdac68876c0d2bc715d49b2bb53975bc82 /plugins/Marketplace | |
parent | 53cc7a4299535b481d90c45ea5fb7137a6ef9092 (diff) | |
parent | 19af9b6c0a63b07020d935ea88710c80823c9d62 (diff) |
Merge branch '3.x-dev' into 4.x-dev
Diffstat (limited to 'plugins/Marketplace')
-rw-r--r-- | plugins/Marketplace/Api/Client.php | 66 |
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(); |