From f0aba44ddb1ddc0ec78df3e866a02739971fbd10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Sun, 15 Sep 2024 17:54:25 +0200 Subject: [PATCH] =?UTF-8?q?1.12.05=20icone=20plugin=20rouge=20si=20module?= =?UTF-8?q?=20mis=20=C3=A0=20jour?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/class/layout.class.php | 38 +++++++++++++++++++++++++++++------ core/core.php | 2 +- core/module/plugin/plugin.php | 20 ++++++++++++++---- 3 files changed, 49 insertions(+), 11 deletions(-) diff --git a/core/class/layout.class.php b/core/class/layout.class.php index e8e0dbf..56674cd 100644 --- a/core/class/layout.class.php +++ b/core/class/layout.class.php @@ -1084,10 +1084,6 @@ class layout extends common self::$siteContent === 'home' && $this->getUser('group') >= self::GROUP_ADMIN ) { - $rightItems .= '
  • ' . template::ico('puzzle', [ - 'help' => 'Modules', - 'href' => helper::baseUrl() . 'plugin' - ]) . '
  • '; $rightItems .= '
  • ' . template::ico('flag', [ 'help' => 'Langues', 'href' => helper::baseUrl() . 'language' @@ -1117,15 +1113,45 @@ class layout extends common ) { $this->setData(['core', 'updateAvailable', true]); } + + // Recherche de mise à jour des modules + $store = plugin::getStore(); + if (is_array($store)) { + // Modules installés + $infoModules = helper::getModules(); + // Clés moduleIds dans les pages + $inPages = helper::arrayColumn($this->getData(['page']), 'moduleId', 'SORT_DESC'); + // Parcourir les données des modules + foreach ($store as $key => $value) { + if (empty($key)) { + continue; + } + // Mise à jour d'un module + if (array_key_exists($key, $infoModules) === true) { + $this->setData(['core', 'updateModuleAvailable', true]); + } + } + } + } } - - // Afficher le bouton : Mise à jour détectée + activée if ($this->getData(['core', 'updateAvailable'])) { $rightItems .= '
  • ' . template::ico('update colorRed') . '
  • '; } } + if ($this->getData(['core', 'updateModuleAvailable'])) { + $rightItems .= '
  • ' . template::ico('puzzle colorRed', [ + 'help' => 'Modules', + 'href' => helper::baseUrl() . 'plugin' + ]) . '
  • '; + } else { + $rightItems .= '
  • ' . template::ico('puzzle', [ + 'help' => 'Modules', + 'href' => helper::baseUrl() . 'plugin' + ]) . '
  • '; + } + // Boutons depuis le groupe éditeur if ( $this->getUser('group') >= self::GROUP_EDITOR && $this->getUser('permission', 'user', 'edit') diff --git a/core/core.php b/core/core.php index 4ec98d6..77eaf64 100644 --- a/core/core.php +++ b/core/core.php @@ -51,7 +51,7 @@ class common const ACCESS_TIMER = 1800; // Numéro de version - const ZWII_VERSION = '1.12.04'; + const ZWII_VERSION = '1.12.05'; // URL autoupdate const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/campus-update/raw/branch/master/'; diff --git a/core/module/plugin/plugin.php b/core/module/plugin/plugin.php index dd7958f..0b685b8 100644 --- a/core/module/plugin/plugin.php +++ b/core/module/plugin/plugin.php @@ -25,7 +25,7 @@ class plugin extends common 'delete' => self::GROUP_ADMIN, 'save' => self::GROUP_ADMIN, 'store' => self::GROUP_ADMIN, - 'item' => self::GROUP_ADMIN, + //'item' => self::GROUP_ADMIN, // détail d'un objet 'upload' => self::GROUP_ADMIN, // Téléverser catalogue @@ -237,8 +237,8 @@ class plugin extends common return ([ 'success' => $success, 'notification' => $success - ? sprintf(helper::translate('Le module %s a été %s'), $module['name'], $t) - : helper::translate('Erreur inconnue, le module n\'est pas installé') + ? sprintf(helper::translate('Le module %s a été %s'), $module['name'], $t) + : helper::translate('Erreur inconnue, le module n\'est pas installé') ]); } else { // Supprimer le dossier temporaire @@ -391,7 +391,6 @@ class plugin extends common ]; } } - // Valeurs en sortie $this->addOutput([ 'title' => helper::translate('Catalogue de modules'), @@ -414,6 +413,16 @@ class plugin extends common ]); } + /** + * Retourne le contenu du store en ligne + * @return mixed + */ + public static function getStore() + { + $store = json_decode(helper::getUrlContents(self::BASEURL_STORE . self::MODULE_STORE . 'list'), true); + return $store; + } + /** * Gestion des modules */ @@ -561,6 +570,9 @@ class plugin extends common } } + // Désactive l'icône rouge + $this->setData(['core', 'updateModuleAvailable', false]); + // Valeurs en sortie $this->addOutput([ 'title' => helper::translate('Gestion des modules'),