diff --git a/formulaires/editer_gamuform.html b/formulaires/editer_gamuform.html index 6eb81ce..23f47f2 100644 --- a/formulaires/editer_gamuform.html +++ b/formulaires/editer_gamuform.html @@ -9,6 +9,11 @@ #GENERER_SAISIES{#ENV{_saisies}} -

+
+ +
diff --git a/formulaires/editer_gamuform.php b/formulaires/editer_gamuform.php index 989fa29..2f076cc 100644 --- a/formulaires/editer_gamuform.php +++ b/formulaires/editer_gamuform.php @@ -7,7 +7,7 @@ if (!defined('_ECRIRE_INC_VERSION')) { function formulaires_editer_gamuform_saisies_dist($id_objet = 0, $objet = '', $redirect = '') { $saisies = false; if (gamuform_objet_autoriser($objet)) { - $saisies = gamuform_recup_saisies($objet); + $saisies = gamuform_recup_tableau_objet($objet, false); } return $saisies; } @@ -16,7 +16,7 @@ function formulaires_editer_gamuform_charger_dist($id_objet = 0, $objet = '', $r $table = table_objet_sql($objet); $id = id_table_objet($objet); - $s = gamuform_recup_champ($objet, true); + $s = gamuform_recup_champs_saisies($objet); if (intval($id_objet)) { $valeurs = sql_fetsel($s, $table, "$id=".intval($id_objet)); @@ -40,7 +40,7 @@ function formulaires_editer_gamuform_verifier_dist($id_objet = 0, $objet = '', $ function formulaires_editer_gamuform_traiter_dist($id_objet = 0, $objet = '', $redirect = '') { - $saisies = gamuform_recup_saisies($objet); + $saisies = gamuform_recup_tableau_objet($objet, false); $table = table_objet_sql($objet); $id = id_table_objet($objet); diff --git a/gamuform/exemple.php b/gamuform/exemple.php index 916e1f5..23f01ba 100644 --- a/gamuform/exemple.php +++ b/gamuform/exemple.php @@ -16,6 +16,7 @@ function gamuform_exemple_dist(){ //'modifier' => 'ma_super_fonction_pour_modifier' ], 'gamutable' => [ + 'champ' => 'type_intervention', 'header' => 'Type', 'classes' => 'w200p', 'filtreCol' => 'select', @@ -33,7 +34,8 @@ function gamuform_exemple_dist(){ //'fonction' => 'ma_super_fonction' ], 'gamutable' => [ - 'header' => 'Compétition', + 'champ' => 'desc_type_intervention', + 'header' => 'Compétition', 'classes' => 'w200p', ] ], @@ -45,6 +47,20 @@ function gamuform_exemple_dist(){ 'label' => 'Contrôle OK', 'data' => ['oui' => 'Oui', '' => 'Non'] //'fonction' => 'ma_super_fonction' + ], + // la cle gamutable est "normalement" pas obligatoire + // 'gamutable' => [ + // 'champ' => 'desc_type_intervention', + // 'header' => 'Compétition', + // 'classes' => 'w200p', + // ] + ], + // possible un array avec simplement la cle gamutable, que pour l'affichage + [ + 'gamutable' => [ + 'champ' => 'maj', + 'header' => 'toto', + 'filtreCol' => 'input', ] ], ]; diff --git a/gamuform_fonctions.php b/gamuform_fonctions.php index d3a06e9..22c8e3e 100644 --- a/gamuform_fonctions.php +++ b/gamuform_fonctions.php @@ -25,11 +25,12 @@ if (!defined('_ECRIRE_INC_VERSION')) { */ function gamufiltre($objet, $champ, $valeur) { if (gamuform_objet_autoriser($objet)) { - $T = gamuform_recup_saisies($objet); + $T = gamuform_recup_tableau_objet($objet); if (!empty($T)) { foreach ($T as $s) { if ( - $s['options']['nom'] === $champ + $champ_tab = $s['gamutable']['champ'] ?? $s['options']['nom'] + and $champ_tab === $champ and !empty($s['gamutable']['fonction']) ) { $filtre = $s['gamutable']['fonction']; @@ -50,7 +51,7 @@ function gamufiltre($objet, $champ, $valeur) { * @return array * */ -function gamuform_recup_saisies(string $objet):array { +function gamuform_recup_tableau_objet(string $objet, bool $all = true):array { $f = charger_fonction($objet, 'gamuform', true); if (!$f) { return []; @@ -59,9 +60,11 @@ function gamuform_recup_saisies(string $objet):array { if (empty($T)) { $T = []; } - $T = array_filter($T, function($d){ - return !empty($d['saisie']); - }); + if (!$all) { + $T = array_filter($T, function($d){ + return !empty($d['saisie']); + }); + } return $T; } @@ -84,24 +87,45 @@ function gamuform_nom_objet($objet):string { return $nom; } /** - * recuperation des champs de l'objet + * recuperation des champs de l'objet pour les saisies * * @param String $objet * * @return Array */ -function gamuform_recup_champs(string $objet):array { +function gamuform_recup_champs_gamutable(string $objet):array { $c = []; if (gamuform_objet_autoriser($objet)) { - $T = gamuform_recup_saisies($objet); + $T = gamuform_recup_tableau_objet($objet); + if (!empty($T)) { + foreach ($T as $s) { + $c[] = $s['gamutable']['champ'] ?? $s['options']['nom']; + } + } + } + return $c; +} +/** + * recuperation des champs de l'objet pour les saisies + * + * @param String $objet + * + * @return Array + */ +function gamuform_recup_champs_saisies(string $objet):array { + $c = []; + + if (gamuform_objet_autoriser($objet)) { + $T = gamuform_recup_tableau_objet($objet, false); if (!empty($T)) { foreach ($T as $s) { $c[] = $s['options']['nom']; } } } + return $c; } @@ -116,14 +140,17 @@ function gamuform_recup_header(string $objet):array { $c = []; if (gamuform_objet_autoriser($objet)) { - $T = gamuform_recup_saisies($objet); + $T = gamuform_recup_tableau_objet($objet); if (!empty($T)) { foreach ($T as $s) { - $c[$s['options']['nom']] = $s['gamutable']['header'] ?? $s['options']['nom']; + $champ = $s['gamutable']['champ'] ?? $s['options']['nom']; + $c[$champ] = $s['gamutable']['header'] ?? $s['options']['nom']; + } } } + return $c; } /** @@ -137,14 +164,15 @@ function gamuform_recup_crayons(string $objet):array { $c = []; if (gamuform_objet_autoriser($objet)) { - $T = gamuform_recup_saisies($objet); + $T = gamuform_recup_tableau_objet($objet); if (!empty($T)) { foreach ($T as $s) { if ( !empty($s['gamutable']['crayons']) + and $champ = $s['gamutable']['champ'] ?? $s['options']['nom'] ) { - $c[$s['options']['nom']] = $s['gamutable']['crayons']; + $c[$champ] = $s['gamutable']['crayons']; } } } @@ -162,15 +190,16 @@ function gamuform_recup_filtreCol(string $objet):array { $c = []; if (gamuform_objet_autoriser($objet)) { - $T = gamuform_recup_saisies($objet); + $T = gamuform_recup_tableau_objet($objet); if (!empty($T)) { foreach ($T as $s) { if ( !empty($s['gamutable']['filtreCol']) and in_array($s['gamutable']['filtreCol'], ['input', 'select']) + and $champ = $s['gamutable']['champ'] ?? $s['options']['nom'] ) { - $c[$s['options']['nom']] = $s['gamutable']['filtreCol']; + $c[$champ] = $s['gamutable']['filtreCol']; } } } @@ -189,11 +218,12 @@ function gamuform_recup_classes(string $objet):array { $c = []; if (gamuform_objet_autoriser($objet)) { - $T = gamuform_recup_saisies($objet); + $T = gamuform_recup_tableau_objet($objet); if (!empty($T)) { foreach ($T as $s) { - $c[$s['options']['nom']] = $s['gamutable']['classes'] ?? ''; + $champ = $s['gamutable']['champ'] ?? $s['options']['nom']; + $c[$champ] = $s['gamutable']['classes'] ?? ''; } } } @@ -213,7 +243,7 @@ function gamuform_recup_valeurs($objet, $id_objet = 0):array { if (gamuform_objet_autoriser($objet)) { $table = table_objet_sql($objet); $id = id_table_objet($objet); - $s = gamuform_recup_champs($objet); + $s = gamuform_recup_champs_gamutable($objet); $s[] = $id; if (intval($id_objet)) { diff --git a/json_gamuform.json.html b/json_gamuform.json.html index 5e45a85..5cd7d23 100644 --- a/json_gamuform.json.html +++ b/json_gamuform.json.html @@ -2,7 +2,7 @@ #SET{header,#ENV{objet}|gamuform_recup_header} -#SET{champs,#ENV{objet}|gamuform_recup_champs} +#SET{champs,#ENV{objet}|gamuform_recup_champs_gamutable} #SET{classes,#ENV{objet}|gamuform_recup_classes} #SET{filtreCol,#ENV{objet}|gamuform_recup_filtreCol} #SET{crayons,#ENV{objet}|gamuform_recup_crayons} diff --git a/lang/gamuform_fr.php b/lang/gamuform_fr.php index fcb5438..5400df7 100644 --- a/lang/gamuform_fr.php +++ b/lang/gamuform_fr.php @@ -8,14 +8,17 @@ if (!defined('_ECRIRE_INC_VERSION')) { $GLOBALS[$GLOBALS['idx_lang']] = array( - // A + // AA 'ajouter_lien_gamuform' => 'Ajouter ce gamuform', - // C + // CC 'champ_titre_label' => 'Titre', 'confirmer_supprimer_gamuform' => 'Confirmez-vous la suppression de cet gamuform ?', - // I + // EE + 'enregistrer' => 'Enregistrer', + + // II 'icone_creer_gamuform' => 'Créer un gamuform', 'icone_modifier_gamuform' => 'Modifier ce gamuform', 'info_1_gamuform' => 'Un gamuform', @@ -23,14 +26,14 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'info_gamuforms_auteur' => 'Les gamuforms de cet auteur', 'info_nb_gamuforms' => '@nb@ gamuforms', - // R + // RR 'retirer_lien_gamuform' => 'Retirer ce gamuform', 'retirer_tous_liens_gamuforms' => 'Retirer tous les gamuforms', - // S + // SS 'supprimer_gamuform' => 'Supprimer cet gamuform', - // T + // TT 'texte_ajouter_gamuform' => 'Ajouter un gamuform', 'texte_changer_statut_gamuform' => 'Ce gamuform est :', 'texte_creer_associer_gamuform' => 'Créer et associer un gamuform',