From d3675f62f442a50d70001609aa3885e903e3c4d5 Mon Sep 17 00:00:00 2001 From: F TEMPEZ Date: Wed, 14 Feb 2024 11:38:29 +0100 Subject: [PATCH] =?UTF-8?q?1.5.04=20Changement=20de=20nom=20d'une=20page?= =?UTF-8?q?=20met=20=C3=A0=20jour=20les=20id=20dans=20les=20historiques?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- core/core.php | 2 +- core/module/course/course.php | 11 ++++++----- core/module/page/page.php | 34 +++++++++++++++++++++++++++------- 4 files changed, 35 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 40814de..372208f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ZwiiCampus 1.5.03 +# ZwiiCampus 1.5.04 ZwiiCampus (Learning Management System) est logiciel auteur destiné à mettre en ligne des tutoriels. Il dispose de plusieurs modalités d'ouverture et d'accès des contenus. Basé sur la version 13 du CMS Zwii, la structure logicielle est solide, le framework de Zwii est éprouvé. diff --git a/core/core.php b/core/core.php index 172be58..ebda73c 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.5.03'; + const ZWII_VERSION = '1.5.04'; // URL autoupdate const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/campus-update/raw/branch/master/'; diff --git a/core/module/course/course.php b/core/module/course/course.php index 9d06d64..6c495dc 100644 --- a/core/module/course/course.php +++ b/core/module/course/course.php @@ -1063,7 +1063,7 @@ class course extends common $redirect = helper::baseUrl(); $state = true; - // Récupérer les pahes pour contrôler la dernière page vue + // Récupérer les pages pour contrôler la dernière page vue $p = json_decode(file_get_contents(self::DATA_DIR . $courseId . '/page.json'), true); $pages = $p['page']; @@ -1079,14 +1079,15 @@ class course extends common elseif ( $this->courseIsUserEnroled($courseId) && $this->courseIsAvailable($courseId) - ) { + ) { // Récupérer la dernière page visitée par cet utilisateur si elle existe - $redirect = ( $this->getData(['enrolment', $courseId, $userId, 'lastPageView']) + $redirect = ( $this->getData(['enrolment', $courseId, $userId, 'lastPageView']) !== null && array_key_exists($this->getData(['enrolment', $courseId, $userId, 'lastPageView']), $pages) ) ? helper::baseUrl() . $this->getData(['enrolment', $courseId, $userId, 'lastPageView']) - : helper::baseUrl() . $pageId; - /* + : helper::baseUrl(); + + /* $essage = $this->getData(['enrolment', $courseId, $userId, 'datePageView']) ? $this->getData(['enrolment', $courseId, $userId, 'datePageView']) : ''; diff --git a/core/module/page/page.php b/core/module/page/page.php index 1974901..0dae711 100644 --- a/core/module/page/page.php +++ b/core/module/page/page.php @@ -68,10 +68,10 @@ class page extends common public static $userProfils = []; public static $navIconTemplate = [ - 'dir' => 'Petit triangle', - 'open' => 'Grand triangle', - 'big' => 'Flèche', - ]; + 'dir' => 'Petit triangle', + 'open' => 'Grand triangle', + 'big' => 'Flèche', + ]; public static $navIconPosition = [ 'none' => 'Masqué', @@ -357,6 +357,24 @@ class page extends common $this->setData(['module', $pageId, 'theme', 'style', $modulesData[$moduleId]['dataDirectory'] . $pageId]); } } + // Met à jour les historiques des utilisateurs + foreach ($this->getData(['enrolment', self::$siteContent]) as $userId => $userData) { + // Vérifier si l'utilisateur a un historique + if ( + isset($userData["history"]) + && isset($userData['history'][$this->getUrl(2)]) + ) { + // Remplacer l'ancienne ID par la nouvelle + $datas = $this->getData(['enrolment', self::$siteContent, $userId, 'history', $this->getUrl(2)]); + $this->setData(['enrolment', self::$siteContent, $userId, 'history', $pageId, $datas]); + $this->deleteData(['enrolment', self::$siteContent, $userId, 'history', $this->getUrl(2)]); + } + // Mettre à jour la dernière page vue si nécessaire + if ($this->getData(['enrolment', self::$siteContent, $userId, 'lastPageView']) === $this->getUrl(2)) { + $this->setData(['enrolment', self::$siteContent, $userId, 'lastPageView', $pageId]); + } + } + // Si la page correspond à la page d'accueil, change l'id dans la configuration du site if ($this->getData(['config', 'homePageId']) === $this->getUrl(2)) { $this->setData(['config', 'homePageId', $pageId]); @@ -538,7 +556,7 @@ class page extends common } } // Construction du formulaire - + // Met à jour le sitemap $this->updateSitemap(); @@ -602,7 +620,8 @@ class page extends common $css = $this->getInput('pageCssEditorContent', helper::FILTER_STRING_LONG) === null ? '' : $this->getInput('pageCssEditorContent', helper::FILTER_STRING_LONG); // Enregistre le CSS $this->setData([ - 'page', $this->getUrl(2), + 'page', + $this->getUrl(2), 'css', $css ]); @@ -636,7 +655,8 @@ class page extends common $js = $this->getInput('pageJsEditorContent', helper::FILTER_STRING_LONG) === null ? '' : $this->getInput('pageJsEditorContent', helper::FILTER_STRING_LONG); // Enregistre le JS $this->setData([ - 'page', $this->getUrl(2), + 'page', + $this->getUrl(2), 'js', $js ]);