diff options
-rw-r--r-- | plugins/Marketplace/Api/Client.php | 58 |
1 files changed, 57 insertions, 1 deletions
diff --git a/plugins/Marketplace/Api/Client.php b/plugins/Marketplace/Api/Client.php index 7334d2f629..1b88074535 100644 --- a/plugins/Marketplace/Api/Client.php +++ b/plugins/Marketplace/Api/Client.php @@ -8,9 +8,11 @@ */ namespace Piwik\Plugins\Marketplace\Api; +use Piwik\API\Request; use Piwik\Cache; use Piwik\Common; use Piwik\Container\StaticContainer; +use Piwik\DataTable; use Piwik\Filesystem; use Piwik\Http; use Piwik\Plugin; @@ -177,8 +179,62 @@ 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 = 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(); |