Browse Source

Options globales : toujours transformer les fieldsets en onglets + une fonction qui permet de faire cela rapidement sur n'importe quel tableau de saisies

pull/73/head
Maïeul 2 years ago
parent
commit
d35909fc14
  1. 8
      formulaires/construire_formulaire.php
  2. 21
      inc/saisies_manipuler.php

8
formulaires/construire_formulaire.php

@ -140,6 +140,7 @@ function formulaires_construire_formulaire_verifier($identifiant, $formulaire_in
// Gestion de la config globales
if ($configurer_globales or $enregistrer_globales) {
$options['options_globales'] = saisies_fieldsets_en_onglets($options['options_globales'], $identifiant);
array_walk_recursive($options['options_globales'], 'construire_formulaire_transformer_nom', 'options_globales[@valeur@]');
array_walk_recursive($options['options_globales'], 'construire_formulaire_transformer_afficher_si', 'options_globales');
$erreurs['configurer_globales'] = $options['options_globales'];
@ -621,12 +622,7 @@ function construire_formulaire_generer_saisie_configurable($saisie, $env) {
);
// Fieldsets racines en onglets forcés + identifiant stable
foreach ($formulaire_config as $k => $saisie_config) {
if ($saisie_config['saisie'] === 'fieldset') {
$formulaire_config[$k]['options']['onglet'] = 'oui';
$formulaire_config[$k]['identifiant'] = $env['_identifiant_session'].'_'.saisie_nom2classe($saisie_config['options']['nom']);
}
}
$formulaire_config = saisies_fieldsets_en_onglets($formulaire_config, $env['_identifiant_session']);
$env2['saisies'] = $formulaire_config;

21
inc/saisies_manipuler.php

@ -281,7 +281,7 @@ function saisies_transformer_noms($saisies, $masque, $remplacement) {
/**
* Transforme toutes les options textuelles d'un certain nom, avec un preg_replace.
*
*
* @param $saisies
* Tableau décrivant les saisies
* @param $option
@ -300,7 +300,7 @@ function saisies_transformer_option($saisies, $option, $masque, $remplacement) {
if (is_string($saisie['options'][$option])) {
$saisies[$cle]['options'][$option] = preg_replace($masque, $remplacement, $saisie['options'][$option]);
}
// On parcourt récursivement toutes les saisies enfants
if (isset($saisie['saisies']) and is_array($saisie['saisies'])) {
$saisies[$cle]['saisies'] = saisies_transformer_option($saisie['saisies'], $option, $masque, $remplacement);
@ -365,3 +365,20 @@ function saisies_inserer_html($saisie, $insertion, $ou = 'fin') {
return $saisie;
}
/**
* Ajoute l'option onglet aux fieldset de premier niveau dans un tableau de $saisie
* Ajoute également un identifiant unique, éventuellement préfixé
* @param array $saisies
* @param string $identifiant_prefixe
* @return array $saisies modifiées
**/
function saisies_fieldsets_en_onglets($saisies, $identifiant_prefixe = '') {
foreach ($saisies as &$saisie) {
if ($saisie['saisie'] == 'fieldset') {
$saisie['options']['onglet'] = 'on';
$saisie['identifiant'] = $identifiant_prefixe.'_'.saisie_nom2classe($saisie['options']['nom']);
}
}
return $saisies;
}

Loading…
Cancel
Save