diff --git a/README.md b/README.md index 059454d..b4e51bc 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,17 @@ # Gamuform Plugin pour générer des formulaires et des vues via gamutable semi automatiquement. -Il suffit de déclarer 2 globals (dans cette exemple pour l'objet auteur) +Il suffit de déclarer la globals ```php -$GLOBALS['gamuform_objets'] = [ 'auteur' => 'Auteurs']; - - -// Génération des saisies pour le formulaire, mais egalement des colonnes pour le gamutable (options/nom et options/libelle) -$GLOBALS['gamuform_auteur'] = [ - [ - 'saisie' => 'input', - 'options' => array( - 'nom' => 'nom', - 'libelle' => 'Nom', - 'label' => 'Votre Nom', - 'obligatoire' => 'oui', - //'fonction' => 'ma_super_fonction' - //'modifier' => 'ma_super_fonction_pour_modifier' - ) - ], - [ - 'saisie' => 'input', - 'options' => array( - 'nom' => 'bio', - 'libelle' => 'Biographie', - 'label' => 'Votre BIO', - 'obligatoire' => 'oui', - //'fonction' => 'ma_super_fonction' - ) - ], - [ - 'saisie' => 'input', - 'options' => array( - 'nom' => 'nom_site', - 'libelle' => 'Site Internet', - 'label' => 'Votre site perso', - ) - ] -]; +$GLOBALS['gamuform_objets'] = array_merge( + $GLOBALS['gamuform_objets'], + [ 'osdve_interventions_type' => "Types d'intervention"] +); ``` +Et de creer une fonction gamuform/mon_objet.php avec une fonction qui renvoie l'array des saisies +> il y a un exemple gamuform/exemple.php + Ensuite, il suffit d'appeler cette page , en paramettre le nom de l'objet voulu: > spip.php?page=voir_gamuform&objet=auteur diff --git a/formulaires/editer_gamuform.php b/formulaires/editer_gamuform.php index 762b460..eaa44f2 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 = $GLOBALS['gamuform_'.$objet]; + $saisies = gamuform_recup_saisies($objet); } return $saisies; } @@ -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 = $GLOBALS['gamuform_'.$objet]; + $saisies = gamuform_recup_saisies($objet); $table = table_objet_sql($objet); $id = id_table_objet($objet); diff --git a/gamuform/exemple.php b/gamuform/exemple.php new file mode 100644 index 0000000..ffbb25e --- /dev/null +++ b/gamuform/exemple.php @@ -0,0 +1,41 @@ + 'input', + 'options' => array( + 'nom' => 'type_intervention', + 'libelle' => 'Type', + 'label' => "Type d'intervention", + 'obligatoire' => 'oui', + //'fonction' => 'ma_super_fonction' + //'modifier' => 'ma_super_fonction_pour_modifier' + ) + ], + [ + 'saisie' => 'input', + 'options' => array( + 'nom' => 'desc_type_intervention', + 'libelle' => 'Description', + 'label' => 'Description', + 'obligatoire' => 'oui', + //'fonction' => 'ma_super_fonction' + ) + ], + [ + 'saisie' => 'radio', + 'options' => array( + 'nom' => 'controle_ok', + 'libelle' => 'Contrôle OK', + 'label' => 'Contrôle OK', + 'data' => ['oui' => 'Oui', '' => 'Non'] + //'fonction' => 'ma_super_fonction' + ) + ], + ]; +} diff --git a/gamuform_fonctions.php b/gamuform_fonctions.php index 4ccc707..bd2e54e 100644 --- a/gamuform_fonctions.php +++ b/gamuform_fonctions.php @@ -13,6 +13,27 @@ if (!defined('_ECRIRE_INC_VERSION')) { return; } +/** + * recuperation du tableau des saisies d'un objet + * dans : gamuform/mon_objet.php + * + * @param string $objet + * + * @return array + * + */ +function gamuform_recup_saisies(string $objet):array { + $f = charger_fonction($objet, 'gamuform', true); + if (!$f) { + return []; + } + $T = $f(); + if (empty($T)) { + $T = []; + } + return $T; +} + function gamuform_objet_autoriser(string $objet):bool { if ( !empty($GLOBALS['gamuform_objets']) @@ -32,11 +53,20 @@ function gamuform_nom_objet($objet):string { return $nom; } -function gamuform_recup_champ($objet, $keys = false) { +/** + * recuperation des champs de l'objet que l'on veut traiter + * + * @param String $objet + * @param Bool $keys (optional) le type de sortie que l'on souhaite + * + * @return Array + */ +function gamuform_recup_champ(string $objet, bool $keys = false):array { $c = []; if (gamuform_objet_autoriser($objet)) { - $T = $GLOBALS['gamuform_'.$objet]; + $T = gamuform_recup_saisies($objet); + if (!empty($T)) { foreach ($T as $s) { if ($keys) { @@ -50,6 +80,14 @@ function gamuform_recup_champ($objet, $keys = false) { return $c; } +/** + * recuperation de(s) ligne(s) de l'objet + * + * @param String $objet + * @param String $id_objet (optional) + * + * @return array + */ function gamuform_recup_valeurs($objet, $id_objet = 0):array { $r = []; if (gamuform_objet_autoriser($objet)) { @@ -74,7 +112,5 @@ function gamuform_recup_valeurs($objet, $id_objet = 0):array { } } } - - return $r; } diff --git a/gamuform_options.php b/gamuform_options.php index c54d3e4..2f44945 100644 --- a/gamuform_options.php +++ b/gamuform_options.php @@ -13,4 +13,5 @@ if (!defined('_ECRIRE_INC_VERSION')) { return; } - +// initialisation de l'objet global +$GLOBALS['gamuform_objets'] = [];