marketplaceApiClient = $marketplaceApiClient; } public static function configure(WidgetConfig $config) { $config->setCategoryId('Marketplace_Marketplace'); $config->setSubcategoryId('Marketplace_PaidPlugins'); $config->setName('Marketplace_PaidPlugins'); $config->setOrder(20); $config->setIsEnabled(!Piwik::isUserIsAnonymous()); } public function render() { Piwik::checkUserIsNotAnonymous(); $template = 'getPremiumFeatures'; $plugins = $this->marketplaceApiClient->searchForPlugins('', '', Sort::METHOD_LAST_UPDATED, PurchaseType::TYPE_PAID); //sort array by bundle first usort($plugins, function ($item1, $item2) { return $item1['isBundle'] < $item2['isBundle'] ? 1 : -1; }); if (empty($plugins)) { $plugins = array(); } else { $plugins = array_splice($plugins, 0, 20); } return $this->renderTemplate($template, array( 'plugins' => $plugins )); } }