diff options
author | Thomas Steur <thomas.steur@gmail.com> | 2013-09-20 00:43:25 +0400 |
---|---|---|
committer | Thomas Steur <thomas.steur@gmail.com> | 2013-09-20 00:43:25 +0400 |
commit | a4f9bc4ae468f906b35d45583a11f689799408bd (patch) | |
tree | 4599abe81b77ae65efcca99793a4bce1044f2756 /plugins/CorePluginsAdmin | |
parent | 86481821d3b8fde5ce65feeb99e05cbbc5f6fbe6 (diff) |
display number of available updates in admin menu
Diffstat (limited to 'plugins/CorePluginsAdmin')
-rw-r--r-- | plugins/CorePluginsAdmin/Controller.php | 37 | ||||
-rw-r--r-- | plugins/CorePluginsAdmin/CorePluginsAdmin.php | 18 | ||||
-rw-r--r-- | plugins/CorePluginsAdmin/Marketplace.php | 58 |
3 files changed, 76 insertions, 37 deletions
diff --git a/plugins/CorePluginsAdmin/Controller.php b/plugins/CorePluginsAdmin/Controller.php index f68fe0e966..d0001570ce 100644 --- a/plugins/CorePluginsAdmin/Controller.php +++ b/plugins/CorePluginsAdmin/Controller.php @@ -204,7 +204,8 @@ class Controller extends \Piwik\Controller\Admin $view->activateNonce = Nonce::getNonce('CorePluginsAdmin.activatePlugin'); $view->pluginsInfo = $this->getPluginsInfo(); - $view->pluginsHavingUpdate = $this->getPluginsHavingUpdate($themesOnly = false); + $marketplace = new Marketplace(); + $view->pluginsHavingUpdate = $marketplace->getPluginsHavingUpdate($themesOnly = false); echo $view->render(); } @@ -350,38 +351,4 @@ class Controller extends \Piwik\Controller\Admin $this->redirectAfterModification($redirectAfter); } - /** - * @param bool $themesOnly - * @return array - */ - private function getPluginsHavingUpdate($themesOnly) - { - $loadedPlugins = PluginsManager::getInstance()->getLoadedPlugins(); - - $marketplace = new MarketplaceApiClient(); - - try { - if ($themesOnly) { - $pluginsHavingUpdate = $marketplace->getInfoOfThemesHavingUpdate($loadedPlugins); - } else { - $pluginsHavingUpdate = $marketplace->getInfoOfPluginsHavingUpdate($loadedPlugins); - } - } catch (\Exception $e) { - $pluginsHavingUpdate = array(); - } - - foreach ($pluginsHavingUpdate as $updatePlugin) { - foreach ($loadedPlugins as $loadedPlugin) { - - if ($loadedPlugin->getPluginName() == $updatePlugin->name) { - $updatePlugin->currentVersion = $loadedPlugin->getVersion(); - $updatePlugin->isActivated = PluginsManager::getInstance()->isPluginActivated($updatePlugin->name); - break; - - } - } - - } - return $pluginsHavingUpdate; - } } diff --git a/plugins/CorePluginsAdmin/CorePluginsAdmin.php b/plugins/CorePluginsAdmin/CorePluginsAdmin.php index 93e7639301..347dfd82e7 100644 --- a/plugins/CorePluginsAdmin/CorePluginsAdmin.php +++ b/plugins/CorePluginsAdmin/CorePluginsAdmin.php @@ -37,12 +37,26 @@ class CorePluginsAdmin extends \Piwik\Plugin function addMenu() { + $marketplace = new Marketplace(); + $pluginsHavingUpdate = $marketplace->getPluginsHavingUpdate($themesOnly = false); + $themesHavingUpdate = $marketplace->getPluginsHavingUpdate($themesOnly = true); + + $pluginsUpdateMessage = ''; + if (!empty($pluginsHavingUpdate)) { + $pluginsUpdateMessage = sprintf(' (%d)', count($pluginsHavingUpdate)); + } + + $themesUpdateMessage = ''; + if (!empty($themesHavingUpdate)) { + $themesUpdateMessage = sprintf(' (%d)', count($themesHavingUpdate)); + } + Piwik_AddAdminSubMenu('CorePluginsAdmin_MenuPlatform', null, "", Piwik::isUserIsSuperUser(), $order = 15); - Piwik_AddAdminSubMenu('CorePluginsAdmin_MenuPlatform', 'General_Plugins', + Piwik_AddAdminSubMenu('CorePluginsAdmin_MenuPlatform', Piwik_Translate('General_Plugins') . $pluginsUpdateMessage, array('module' => 'CorePluginsAdmin', 'action' => 'plugins', 'activated' => ''), Piwik::isUserIsSuperUser(), $order = 1); - Piwik_AddAdminSubMenu('CorePluginsAdmin_MenuPlatform', 'CorePluginsAdmin_Themes', + Piwik_AddAdminSubMenu('CorePluginsAdmin_MenuPlatform', Piwik_Translate('CorePluginsAdmin_Themes') . $themesUpdateMessage, array('module' => 'CorePluginsAdmin', 'action' => 'themes', 'activated' => ''), Piwik::isUserIsSuperUser(), $order = 3); diff --git a/plugins/CorePluginsAdmin/Marketplace.php b/plugins/CorePluginsAdmin/Marketplace.php new file mode 100644 index 0000000000..8703d54bf8 --- /dev/null +++ b/plugins/CorePluginsAdmin/Marketplace.php @@ -0,0 +1,58 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + * @category Piwik_Plugins + * @package CorePluginsAdmin + */ +namespace Piwik\Plugins\CorePluginsAdmin; + +use Piwik\Piwik; +use Piwik\PluginsManager; + +/** + * + * @package CorePluginsAdmin + */ +class Marketplace +{ + + /** + * @param bool $themesOnly + * @return array + */ + public function getPluginsHavingUpdate($themesOnly) + { + $loadedPlugins = PluginsManager::getInstance()->getLoadedPlugins(); + + $marketplace = new MarketplaceApiClient(); + + try { + if ($themesOnly) { + $pluginsHavingUpdate = $marketplace->getInfoOfThemesHavingUpdate($loadedPlugins); + } else { + $pluginsHavingUpdate = $marketplace->getInfoOfPluginsHavingUpdate($loadedPlugins); + } + } catch (\Exception $e) { + $pluginsHavingUpdate = array(); + } + + foreach ($pluginsHavingUpdate as $updatePlugin) { + foreach ($loadedPlugins as $loadedPlugin) { + + if ($loadedPlugin->getPluginName() == $updatePlugin->name) { + $updatePlugin->currentVersion = $loadedPlugin->getVersion(); + $updatePlugin->isActivated = PluginsManager::getInstance()->isPluginActivated($updatePlugin->name); + break; + + } + } + + } + return $pluginsHavingUpdate; + } + +} |