Browse Source

fix: `saisie_transformer_option()` ajoute l'option si jamais elle est inexistante (bug introduit en v4.5.0)

Ce qui fait que les saisies dans les constructeur de saisies sont de
nouveau en `pleine_largeur`.
pull/238/head
Maïeul 4 months ago committed by Gitea
parent
commit
d327abec98
  1. 3
      CHANGELOG.md
  2. 6
      inc/saisies_manipuler.php
  3. 26
      tests/saisies_manipuler/saisies_transformer_option.php

3
CHANGELOG.md

@ -11,6 +11,9 @@
- #236 Correction d'un bug sur constructeur de formulaire lorsque CVT-Upload n'est pas disponible.
- #236 Ne pas proposer la vérification `fichiers` pour des saisies non `fichiers`
- #237 `saisie_transformer_option()` ajoute l'option si jamais elle est inexistante (bug introduit en v4.5.0)
- #237 Constructeur de formulaire : toutes les saisies sont en pleine largeur (comportement qui avait été cassé en v4.5.0)
- #237 `saisie_mapper_option` ajoute l'option si jamais elle est inexistante
## [4.6.0] - 2022-11-21

6
inc/saisies_manipuler.php

@ -410,6 +410,7 @@ function saisies_transformer_noms($saisies, $masque, $remplacement) {
* Tableau décrivant les saisies
* @param $option
* Nom de l'option à transformer (par ex "nom", ou "afficher_si"), ou tableau
* Note : si l'option n'existe pas, elle est automatiquement mise à `''` avant toute transformation
* @param $masque
* Ce que l'on doit chercher dans le texte
* @param $remplacement
@ -441,6 +442,7 @@ function saisies_transformer_option($saisies, $option, $masque, $remplacement, $
* @param str|array $options
* Nom de l'option à transformer (par ex "nom", ou "afficher_si")
* Ou tableau de noms
* Note : si l'option n'existe pas, elle est automatiquement mise à `''` avant toute transformation
* @param str $callback
* Nom de la fonction à appliquer
* @param array $args
@ -457,9 +459,7 @@ function saisies_mapper_option($saisies, $options, $callback, $args = [], $recur
if (is_array($saisies)) {
foreach ($saisies as $cle => $saisie) {
foreach ($options as $option) {
if (isset($saisie['options'][$option])) {
$saisies[$cle]['options'][$option] = call_user_func_array($callback, array_merge([$saisies[$cle]['options'][$option]], $args));
}
$saisies[$cle]['options'][$option] = call_user_func_array($callback, array_merge([$saisies[$cle]['options'][$option] ?? ''], $args));
}
// On parcourt récursivement toutes les saisies enfants
if (isset($saisie['saisies']) and is_array($saisie['saisies']) and $recursif) {

26
tests/saisies_manipuler/saisies_transformer_option.php

@ -68,6 +68,32 @@ function essais_saisies_transformer_option(){
3 => '#input_(\d*)#',
4 => '$1_input'
),
array(
0 => array (
0 =>
array (
'saisie' => 'input',
'options' =>
array (
'nom' => 'input_1',
'conteneur_class' => ' pleine_largeur',
)
),
),
1 => array (
0 =>
array (
'saisie' => 'input',
'options' =>
array (
'nom' => 'input_1',
)
)
),
2 => 'conteneur_class',
3 => '#(.*)#',
4 => '\1 pleine_largeur'
),
array(
0 => array (
0 =>

Loading…
Cancel
Save