Calendar 1.4alpha corrige le bug de sélection des classes

This commit is contained in:
Fred Tempez 2024-09-08 22:11:45 +02:00
parent 4f7507bf14
commit be4f5c8457

View File

@ -15,7 +15,7 @@
class calendar extends common class calendar extends common
{ {
const VERSION = '1.4'; const VERSION = '1.4alpha';
const REALNAME = 'Calendrier'; const REALNAME = 'Calendrier';
const DATA_DIRECTORY = self::DATA_DIR . 'calendar/'; 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 // Valeurs en sortie
$this->addOutput([ $this->addOutput([
@ -128,13 +133,20 @@ class calendar extends common
} }
// Liste des classes disponibles // Liste des classes disponibles
$classes = $this->getData(['page', $this->getUrl(0), 'css']); $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 // Utiliser une expression pour capturer la clé complète (div .gc-event.textRed) et la dernière classe (textRed)
self::$classes = array_merge(self::$classes, $associativeClasses); 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 // Valeurs en sortie
@ -183,13 +195,20 @@ class calendar extends common
} }
// Liste des classes disponibles // Liste des classes disponibles
$classes = $this->getData(['page', $this->getUrl(0), 'css']); $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 // Utiliser une expression pour capturer la clé complète (div .gc-event.textRed) et la dernière classe (textRed)
self::$classes = array_merge(self::$classes, $associativeClasses); 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 // Valeurs en sortie
$this->addOutput([ $this->addOutput([