From c6358b4c637f8f6d2806ca573095d9ec2d448b4a 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 --- core/module/course/course.php | 11 ++++++----- core/module/page/page.php | 34 +++++++++++++++++++++++++++------- 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/core/module/course/course.php b/core/module/course/course.php index f9536eb..965408a 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 ]);