diff --git a/core/class/layout.class.php b/core/class/layout.class.php index db2d044d..9a7ef9f6 100644 --- a/core/class/layout.class.php +++ b/core/class/layout.class.php @@ -1063,10 +1063,6 @@ class layout extends common 'help' => 'Thème', 'href' => helper::baseUrl() . 'theme' ]) . ''; - $rightItems .= '
  • ' . template::ico('puzzle', [ - 'help' => 'Modules', - 'href' => helper::baseUrl() . 'plugin' - ]) . '
  • '; $rightItems .= '
  • ' . template::ico('cog-alt', [ 'help' => 'Configuration', 'href' => helper::baseUrl() . 'config' @@ -1092,15 +1088,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') @@ -1175,7 +1201,7 @@ class layout extends common { // Import des fontes liées au thème if (file_exists(self::DATA_DIR . 'font/font.html')) { - include_once (self::DATA_DIR . 'font/font.html'); + include_once(self::DATA_DIR . 'font/font.html'); } } diff --git a/core/core.php b/core/core.php index 9c97672f..301697c1 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 = '13.4.00'; + const ZWII_VERSION = '13.4.00.test1'; // URL autoupdate const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/cms-update/raw/branch/master/'; diff --git a/core/module/plugin/plugin.php b/core/module/plugin/plugin.php index 19199914..5d053995 100644 --- a/core/module/plugin/plugin.php +++ b/core/module/plugin/plugin.php @@ -22,7 +22,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 @@ -330,6 +330,7 @@ class plugin extends common 'state' => $r['success'] ]); } + // Valeurs en sortie $this->addOutput([ 'title' => helper::translate('Catalogue de modules'), @@ -411,6 +412,15 @@ 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 */ @@ -556,6 +566,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'),