From 54a0add941c7758e8ab5b1f912a2c27438f30c70 Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Tue, 13 Aug 2024 21:33:01 +0200 Subject: [PATCH] 13.3.06 correction des filtres pour agenda --- CHANGES.md | 11 ++---- LISEZMOI.md | 2 +- README.md | 2 +- core/class/helper.class.php | 9 +++++ core/class/template.class.php | 71 +++++++++++++++++++++-------------- core/core.php | 2 +- 6 files changed, 59 insertions(+), 38 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 9358f6e7..7a0457c0 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,14 +1,11 @@ # Notes de mises à jour -## Versions 13.3.06 -** Corrections : ** -- Mise à jour du module News 5.9, taille d'un bouton. -- Mise à jour du module Blog 7.10, bloque la soumission d'un commentaire vide. - ## Versions 13.3.05 ** Correction : ** -- Corrige la génération des miniatures au format avif et webp - +- Corrige la génération des miniatures au format avif et webp** Corrections : ** +- Mise à jour du module News 5.9, taille d'un bouton. +- Mise à jour du module Blog 7.10, bloque la soumission d'un commentaire vide. +- Ajoute les filtres DATE et TIME pour l'affichage correct des champs de formulaire. ## Versions 13.3.04 diff --git a/LISEZMOI.md b/LISEZMOI.md index d33347b5..f44d2035 100644 --- a/LISEZMOI.md +++ b/LISEZMOI.md @@ -1,4 +1,4 @@ -# ZwiiCMS 13.3.03 +# ZwiiCMS 13.3.05 Zwii est un CMS sans base de données (flat-file) qui permet de créer et gérer facilement un site web sans aucune connaissance en programmation. diff --git a/README.md b/README.md index c69b3260..8763eabe 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ZwiiCMS 13.3.03 +# ZwiiCMS 13.3.05 Zwii is a database-less (flat-file) CMS that allows you to easily create and manage a web site without any programming knowledge. diff --git a/core/class/helper.class.php b/core/class/helper.class.php index 4d67f1aa..7cf5c98c 100644 --- a/core/class/helper.class.php +++ b/core/class/helper.class.php @@ -18,6 +18,9 @@ class helper const FILTER_STRING_SHORT = 9; const FILTER_TIMESTAMP = 10; const FILTER_URL = 11; + const FILTER_DATE = 12; + const FILTER_TIME = 13; + /** @@ -473,6 +476,12 @@ class helper case self::FILTER_URL: $text = filter_var($text, FILTER_SANITIZE_URL); break; + case self::FILTER_DATE: + $text = date('Y-m-d', $text); + break; + case self::FILTER_TIME: + $text = date('H:i:s', $text); + break; } return $text; } diff --git a/core/class/template.class.php b/core/class/template.class.php index 97548f8e..c0afc42b 100644 --- a/core/class/template.class.php +++ b/core/class/template.class.php @@ -28,7 +28,7 @@ class template $attributes['value'] = helper::translate($attributes['value']); $attributes['help'] = helper::translate($attributes['help']); // Retourne le html - return sprintf( + return sprintf( '%s', helper::sprintAttributes($attributes, ['class', 'disabled', 'ico', 'value']), $attributes['disabled'] ? 'disabled' : '', @@ -65,12 +65,12 @@ class template // Limite addition et soustraction selon le type de captcha $numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20]; $letters = ['u', 't', 's', 'r', 'q', 'p', 'o', 'n', 'm', 'l', 'k', 'j', 'i', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a']; - $limit = $attributes['limit'] ? count($letters) - 1 : 10; + $limit = $attributes['limit'] ? count($letters) - 1 : 10; // Tirage de l'opération mt_srand(); // Captcha simple limité à l'addition - $operator = $attributes['limit'] ? mt_rand(1, 4) : 1; + $operator = $attributes['limit'] ? mt_rand(1, 4) : 1; // Limite si multiplication ou division if ($operator > 2) { @@ -94,15 +94,15 @@ class template switch ($operator) { case 1: $operator = template::ico('plus', ['fontSize' => '2em;']); - $result = $firstNumber + $secondNumber; + $result = $firstNumber + $secondNumber; break; case 2: $operator = template::ico('minus', ['fontSize' => '2em;']); - $result = $firstNumber - $secondNumber; + $result = $firstNumber - $secondNumber; break; case 3: $operator = template::ico('cancel', ['fontSize' => '2em;']); - $result = $firstNumber * $secondNumber; + $result = $firstNumber * $secondNumber; break; case 4: $operator = template::ico('divide', ['fontSize' => '2em;']); @@ -112,7 +112,7 @@ class template } mt_srand(); $secondNumber = mt_rand(1, $limit); - $firstNumber = $firstNumber * $secondNumber; + $firstNumber = $firstNumber * $secondNumber; $result = $firstNumber / $secondNumber; break; } @@ -125,8 +125,8 @@ class template $secondLetter = uniqid(); // Masquage image source pour éviter un décodage - copy('core/vendor/zwiico/png/' . $attributes['type'] . '/' . $letters[$firstNumber] . '.png', 'site/tmp/' . $firstLetter . '.png'); - copy('core/vendor/zwiico/png/' . $attributes['type'] . '/' . $letters[$secondNumber] . '.png', 'site/tmp/' . $secondLetter . '.png'); + copy('core/vendor/zwiico/png/' . $attributes['type'] . '/' . $letters[$firstNumber] . '.png', 'site/tmp/' . $firstLetter . '.png'); + copy('core/vendor/zwiico/png/' . $attributes['type'] . '/' . $letters[$secondNumber] . '.png', 'site/tmp/' . $secondLetter . '.png'); // Début du wrapper @@ -134,7 +134,7 @@ class template // Label $html .= self::label( $attributes['id'], - ' ' . $operator . ' ' . template::ico('eq', ['fontSize' => '2em;']), + ' ' . $operator . ' ' . template::ico('eq', ['fontSize' => '2em;']), [ 'help' => $attributes['help'] ] @@ -244,17 +244,32 @@ class template 'placeholder' => '', 'readonly' => false, 'value' => '', - 'type'=> 'date', + 'type' => 'date', ], $attributes); // Traduction de l'aide et de l'étiquette $attributes['label'] = helper::translate($attributes['label']); $attributes['help'] = helper::translate($attributes['help']); //$attributes['placeholder'] = helper::translate($attributes['placeholder']); + // Filtre selon le type + switch ($attributes['type']) { + case 'datetime-local': + $filter = helper::FILTER_TIMESTAMP; + break; + case 'date': + $filter = helper::FILTER_DATE; + break; + case 'time': + $filter = helper::FILTER_TIME; + break; + default: + $filter = null; // pas de filtre pour month and year + break; + } // Sauvegarde des données en cas d'erreur if ($attributes['before'] and array_key_exists($attributes['id'], common::$inputBefore)) { $attributes['value'] = common::$inputBefore[$attributes['id']]; } else { - $attributes['value'] = ($attributes['value'] ? helper::filter($attributes['value'], helper::FILTER_TIMESTAMP) : ''); + $attributes['value'] = ($attributes['value'] ? helper::filter($attributes['value'], $filter) : ''); } // Début du wrapper $html = '
'; @@ -284,7 +299,7 @@ class template $html .= '
'; // Retourne le html return $html; - } + } /** @@ -346,14 +361,14 @@ class template $html .= sprintf( '' : ''; $item .= ''; $item .= ($attributes['href']) ? '' : ''; @@ -686,12 +701,12 @@ class template 'label' => '', 'name' => $nameId, 'selected' => '', - 'font' => [], + 'font' => [], 'multiple' => '' ], $attributes); // Traduction de l'aide et de l'étiquette $attributes['label'] = helper::translate($attributes['label']); - $attributes['help'] = helper::translate($attributes['help']); + $attributes['help'] = helper::translate($attributes['help']); // Stocker les fontes et remettre à zéro le tableau des fontes transmis pour éviter une erreur de sprintAttributes if (empty($attributes['font']) === false) { $fonts = $attributes['font']; @@ -728,7 +743,7 @@ class template ); foreach ($options as $value => $text) { // Select des liste de fontes - $html .= isset($fonts) ? sprintf( + $html .= isset($fonts) ? sprintf( '', $value, $attributes['selected'] == $value ? ' selected' : '', // Double == pour ignorer le type de variable car $_POST change les types en string @@ -782,7 +797,7 @@ class template // Traduction de l'aide et de l'étiquette $attributes['value'] = helper::translate($attributes['value']); // Retourne le html - return sprintf( + return sprintf( '', $attributes['class'], $attributes['uniqueSubmission'] ? 'uniqueSubmission' : '', @@ -810,7 +825,7 @@ class template ], $attributes); // Traduction de l'aide et de l'étiquette foreach ($head as $value) { - $head[array_search($value, $head)] = helper::translate($value); + $head[array_search($value, $head)] = helper::translate($value); } // Début du wrapper $html = '
'; @@ -905,7 +920,7 @@ class template $html .= self::notice($attributes['id'], $notice); // Texte $html .= sprintf( - '', + '', helper::sprintAttributes($attributes) ); // Fin du wrapper diff --git a/core/core.php b/core/core.php index 7451a1db..ef28d336 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 = '13.3.06'; + const ZWII_VERSION = '13.3.05'; // URL autoupdate const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/cms-update/raw/branch/master/';