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