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'),