From 462fc16ea056d43fa6af36fda9f05522e8c1cf2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Sat, 18 Jan 2025 19:29:33 +0100 Subject: [PATCH] =?UTF-8?q?Les=20templates=20text=20textarea=20mail=20pass?= =?UTF-8?q?word=20select=20date=20file=20disposent=20d'un=20nouvel=20attri?= =?UTF-8?q?but=20'required'=20=3D>=20true=20qui=20ins=C3=A8re=20une=20?= =?UTF-8?q?=C3=A9toile=20rouge=20=C3=A0=20droite=20du=20label=20et=20qui?= =?UTF-8?q?=20ajoute=20l'attribut=20required=20au=20champ=20ce=20qui=20per?= =?UTF-8?q?met=20d'afficher=20le=20message=20par=20le=20navigateur.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/class/template.class.php | 114 +++++++++++++++++++++++++++------- core/layout/common.css | 8 +++ 2 files changed, 100 insertions(+), 22 deletions(-) diff --git a/core/class/template.class.php b/core/class/template.class.php index 24c2265a..5384d693 100644 --- a/core/class/template.class.php +++ b/core/class/template.class.php @@ -245,6 +245,7 @@ class template 'readonly' => false, 'value' => '', 'type' => 'date', + 'required' => false, ], $attributes); // Traduction de l'aide et de l'étiquette $attributes['label'] = helper::translate($attributes['label']); @@ -271,12 +272,21 @@ class template } else { $attributes['value'] = ($attributes['value'] ? helper::filter($attributes['value'], $filter) : ''); } + // Gestion du champ obligatoire + if (isset($attributes['required']) && $attributes['required']) { + // Affiche l'astérisque dans le label + $required = ' required-field'; + // Ajoute l'attribut required au champ input + $attributes['required'] = 'required'; + } // Début du wrapper $html = '
'; // Label if ($attributes['label']) { $html .= self::label($attributes['id'], $attributes['label'], [ - 'help' => $attributes['help'] + 'help' => $attributes['help'], + // Ajoute la classe required-field si le champ est obligatoire + 'class' => isset($required) ? $required : '' ]); } // Notice @@ -326,7 +336,8 @@ class template 'type' => 2, 'value' => '', 'folder' => '', - 'language' => 'fr_FR' + 'language' => 'fr_FR', + 'required' => false, ], $attributes); // Traduction de l'aide et de l'étiquette $attributes['value'] = helper::translate($attributes['value']); @@ -335,6 +346,13 @@ class template if ($attributes['before'] and array_key_exists($attributes['id'], common::$inputBefore)) { $attributes['value'] = common::$inputBefore[$attributes['id']]; } + // Gestion du champ obligatoire + if (isset($attributes['required']) && $attributes['required']) { + // Affiche l'astérisque dans le label + $required = ' required-field'; + // Ajoute l'attribut required au champ input + $attributes['required'] = 'required'; + } // Début du wrapper $html = '
'; // Notice @@ -347,7 +365,9 @@ class template // Label if ($attributes['label']) { $html .= self::label($attributes['id'], $attributes['label'], [ - 'help' => $attributes['help'] + 'help' => $attributes['help'], + // Ajoute la classe required-field si le champ est obligatoire + 'class' => isset($required) ? $required : '' ]); } // Champ caché contenant l'url de la page @@ -362,16 +382,16 @@ class template $html .= sprintf( ' $nameId, 'placeholder' => '', 'readonly' => false, - 'value' => '' + 'value' => '', + 'required' => false, ], $attributes); // Traduction de l'aide et de l'étiquette $attributes['label'] = helper::translate($attributes['label']); @@ -593,12 +614,21 @@ class template if ($attributes['before'] and array_key_exists($attributes['id'], common::$inputBefore)) { $attributes['value'] = common::$inputBefore[$attributes['id']]; } + // Gestion du champ obligatoire + if (isset($attributes['required']) && $attributes['required']) { + // Affiche l'astérisque dans le label + $required = ' required-field'; + // Ajoute l'attribut required au champ input + $attributes['required'] = 'required'; + } // Début du wrapper $html = '
'; // Label if ($attributes['label']) { $html .= self::label($attributes['id'], $attributes['label'], [ - 'help' => $attributes['help'] + 'help' => $attributes['help'], + // Ajoute la classe required-field si le champ est obligatoire + 'class' => isset($required) ? $required : '' ]); } // Notice @@ -651,18 +681,28 @@ class template //'maxlength' => '500', 'name' => $nameId, 'placeholder' => '', - 'readonly' => false + 'readonly' => false, + 'required' => false, ], $attributes); // Traduction de l'aide et de l'étiquette $attributes['label'] = helper::translate($attributes['label']); //$attributes['placeholder'] = helper::translate($attributes['placeholder']); $attributes['help'] = helper::translate($attributes['help']); + // Gestion du champ obligatoire + if (isset($attributes['required']) && $attributes['required']) { + // Affiche l'astérisque dans le label + $required = ' required-field'; + // Ajoute l'attribut required au champ input + $attributes['required'] = 'required'; + } // Début du wrapper $html = '
'; // Label if ($attributes['label']) { $html .= self::label($attributes['id'], $attributes['label'], [ - 'help' => $attributes['help'] + 'help' => $attributes['help'], + // Ajoute la classe required-field si le champ est obligatoire + 'class' => isset($required) ? $required : '' ]); } // Notice @@ -705,7 +745,8 @@ class template 'name' => $nameId, 'selected' => '', 'font' => [], - 'multiple' => '' + 'multiple' => '', + 'required' => false, ], $attributes); // Traduction de l'aide et de l'étiquette $attributes['label'] = helper::translate($attributes['label']); @@ -719,12 +760,21 @@ class template if ($attributes['before'] and array_key_exists($attributes['id'], common::$inputBefore)) { $attributes['selected'] = common::$inputBefore[$attributes['id']]; } + // Gestion du champ obligatoire + if (isset($attributes['required']) && $attributes['required']) { + // Affiche l'astérisque dans le label + $required = ' required-field'; + // Ajoute l'attribut required au champ input + $attributes['required'] = 'required'; + } // Début du wrapper $html = '
'; // Label if ($attributes['label']) { $html .= self::label($attributes['id'], $attributes['label'], [ - 'help' => $attributes['help'] + 'help' => $attributes['help'], + // Ajoute la classe required-field si le champ est obligatoire + 'class' => isset($required) ? $required : '' ]); } // Notice @@ -896,7 +946,8 @@ class template 'placeholder' => '', 'readonly' => false, 'value' => '', - 'type' => 'text' + 'type' => 'text', + 'required' => false, ], $attributes); // Traduction de l'aide et de l'étiquette $attributes['label'] = helper::translate($attributes['label']); @@ -906,12 +957,21 @@ class template if ($attributes['before'] and array_key_exists($attributes['id'], common::$inputBefore)) { $attributes['value'] = common::$inputBefore[$attributes['id']]; } + // Gestion du champ obligatoire + if (isset($attributes['required']) && $attributes['required']) { + // Affiche l'astérisque dans le label + $required = ' required-field'; + // Ajoute l'attribut required au champ input + $attributes['required'] = 'required'; + } // Début du wrapper $html = '
'; // Label if ($attributes['label']) { $html .= self::label($attributes['id'], $attributes['label'], [ - 'help' => $attributes['help'] + 'help' => $attributes['help'], + // Ajoute la classe required-field si le champ est obligatoire + 'class' => isset($required) ? $required : '' ]); } // Notice @@ -953,7 +1013,8 @@ class template //'maxlength' => '500', 'name' => $nameId, 'readonly' => false, - 'value' => '' + 'value' => '', + 'required' => false, ], $attributes); // Traduction de l'aide et de l'étiquette $attributes['label'] = helper::translate($attributes['label']); @@ -962,12 +1023,21 @@ class template if ($attributes['before'] and array_key_exists($attributes['id'], common::$inputBefore)) { $attributes['value'] = common::$inputBefore[$attributes['id']]; } + // Gestion du champ obligatoire + if (isset($attributes['required']) && $attributes['required']) { + // Affiche l'astérisque dans le label + $required = ' required-field'; + // Ajoute l'attribut required au champ input + $attributes['required'] = 'required'; + } // Début du wrapper $html = '
'; // Label if ($attributes['label']) { $html .= self::label($attributes['id'], $attributes['label'], [ - 'help' => $attributes['help'] + 'help' => $attributes['help'], + // Ajoute la classe required-field si le champ est obligatoire + 'class' => isset($required) ? $required : '' ]); } // Notice diff --git a/core/layout/common.css b/core/layout/common.css index 455845b3..20571f37 100755 --- a/core/layout/common.css +++ b/core/layout/common.css @@ -353,6 +353,14 @@ td>.col12 { color: #E74C3C; } +/* Asterisque des champs obligatoires */ +.required-field::after { + content: '\00204E'; + color: #E74C3C; + margin-left: 4px; + font-size: larger; +} + /* Mauvaise position dans les champs File .inputFile.notice {