From be4f5c845751dee685a67849aca69e97f789195a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Sun, 8 Sep 2024 22:11:45 +0200 Subject: [PATCH] =?UTF-8?q?Calendar=201.4alpha=20corrige=20le=20bug=20de?= =?UTF-8?q?=20s=C3=A9lection=20des=20classes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calendar/calendar.php | 45 ++++++++++++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/calendar/calendar.php b/calendar/calendar.php index e180901..1bdc936 100644 --- a/calendar/calendar.php +++ b/calendar/calendar.php @@ -15,7 +15,7 @@ class calendar extends common { - const VERSION = '1.4'; + const VERSION = '1.4alpha'; const REALNAME = 'Calendrier'; const DATA_DIRECTORY = self::DATA_DIR . 'calendar/'; @@ -84,6 +84,11 @@ class calendar extends common } } } + + // Initialise la feuille de style + if (empty($this->getData(['page', $this->getUrl(0), 'css']))) { + $this->initCss(); + } // Valeurs en sortie $this->addOutput([ @@ -128,13 +133,20 @@ class calendar extends common } // Liste des classes disponibles $classes = $this->getData(['page', $this->getUrl(0), 'css']); - preg_match_all('/\.(\w+)/', $classes, $matches); - if (isset($matches[1])) { - // Créer un tableau associatif avec les clés égales aux valeurs - $associativeClasses = array_combine($matches[1], $matches[1]); - // Fusionner ce tableau avec le tableau self::$classes - self::$classes = array_merge(self::$classes, $associativeClasses); + // Utiliser une expression pour capturer la clé complète (div .gc-event.textRed) et la dernière classe (textRed) + preg_match_all('/(div\s+\.gc-event\.\w+)\s*\{/', $classes, $matches); + + // Créer un tableau associatif où la clé est la classe complète et la valeur est la dernière partie de la classe + $associativeClasses = []; + + foreach ($matches[1] as $fullClass) { + // Extraire la dernière classe après le dernier point + preg_match('/\.(\w+)$/', $fullClass, $lastClassMatch); + $lastClass = $lastClassMatch[1]; + + // Assigner la clé complète à la dernière classe + self::$classes[$fullClass] = $lastClass; } // Valeurs en sortie @@ -183,13 +195,20 @@ class calendar extends common } // Liste des classes disponibles $classes = $this->getData(['page', $this->getUrl(0), 'css']); - preg_match_all('/\.(\w+)/', $classes, $matches); - if (isset($matches[1])) { - // Créer un tableau associatif avec les clés égales aux valeurs - $associativeClasses = array_combine($matches[1], $matches[1]); - // Fusionner ce tableau avec le tableau self::$classes - self::$classes = array_merge(self::$classes, $associativeClasses); + // Utiliser une expression pour capturer la clé complète (div .gc-event.textRed) et la dernière classe (textRed) + preg_match_all('/(div\s+\.gc-event\.\w+)\s*\{/', $classes, $matches); + + // Créer un tableau associatif où la clé est la classe complète et la valeur est la dernière partie de la classe + $associativeClasses = []; + + foreach ($matches[1] as $fullClass) { + // Extraire la dernière classe après le dernier point + preg_match('/\.(\w+)$/', $fullClass, $lastClassMatch); + $lastClass = $lastClassMatch[1]; + + // Assigner la clé complète à la dernière classe + self::$classes[$fullClass] = $lastClass; } // Valeurs en sortie $this->addOutput([