diff options
Diffstat (limited to 'plugins/Marketplace/Widgets/GetNewPlugins.php')
-rw-r--r-- | plugins/Marketplace/Widgets/GetNewPlugins.php | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/plugins/Marketplace/Widgets/GetNewPlugins.php b/plugins/Marketplace/Widgets/GetNewPlugins.php new file mode 100644 index 0000000000..6079c1a8e8 --- /dev/null +++ b/plugins/Marketplace/Widgets/GetNewPlugins.php @@ -0,0 +1,53 @@ +<?php +/** + * Piwik - free/libre analytics platform + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\Marketplace\Widgets; + +use Piwik\Common; +use Piwik\Plugins\Marketplace\Api\Client; +use Piwik\Plugins\Marketplace\Input\Sort; +use Piwik\Widget\Widget; +use Piwik\Widget\WidgetConfig; + +class GetNewPlugins extends Widget +{ + /** + * @var Client + */ + private $marketplaceApiClient; + + public function __construct(Client $marketplaceApiClient) + { + $this->marketplaceApiClient = $marketplaceApiClient; + } + + public static function configure(WidgetConfig $config) + { + $config->setCategoryId('About Piwik'); + $config->setName('Latest Marketplace Updates'); + $config->setOrder(19); + } + + public function render() + { + $isAdminPage = Common::getRequestVar('isAdminPage', 0, 'int'); + + if (!empty($isAdminPage)) { + $template = 'getNewPluginsAdmin'; + } else { + $template = 'getNewPlugins'; + } + + $plugins = $this->marketplaceApiClient->searchForPlugins('', '', Sort::METHOD_LAST_UPDATED, ''); + + return $this->renderTemplate($template, array( + 'plugins' => array_splice($plugins, 0, 3) + )); + } + +}
\ No newline at end of file |