diff --git a/README.md b/README.md index 7a5aec6..1cb039b 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,27 @@ # Gamuform Plugin pour générer des formulaires via saisies et des vues via gamutable semi automatiquement. -## Déclaration des objets -Il suffit de déclarer la `$GLOBALS['gamuform_objets']` -* soit simplement : `objet => nom de l'objet` -* soit plus détaillé : -``` -objet => [ - 'singulier' => 'nom_singulier', - 'pluriel' => _T('prefix:nom_pluriel'), - 'creer' => 'créer un nouvel xxx' -] -``` -exemple : - +## Configuration de l'interface pour chaque objet +### Chaines de langues de l'interface (2 possibilités) +* On déclare la `$GLOBALS['gamuform_i18n']['nom_objet']` ```php -$GLOBALS['gamuform_objets'] = array_merge( - $GLOBALS['gamuform_objets'] ?? [], +$GLOBALS['gamuform_i18n'] = array_merge( + $GLOBALS['gamuform_i18n'] ?? [], [ 'app_competition' => [ 'singulier' => 'competition', 'pluriel' => 'compétitions', 'creer' => 'Créer une nouvelle compétition' - ], - 'app_competiteur' => "compétiteurs", + ] ] ); ``` +* On cree un fichier de lang mon_objet_fr.php, avec les 3 cles (singulier, pluriel, creer) ## Configuration des objets pour les saisies et pour l'affichage avec gamutable -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 +Il faut creer une fonction gamuform/mon_objet.php avec une fonction qui renvoie l'array des saisies, qui peut etre enrichi par des entrées gamutables +> il y a un exemple commenté dans gamuform/exemple.php avec toutes les possibilités offertes ## Page Il suffit d'appeler cette page `spip.php?page=voir_gamuform`, en paramettre le nom de l'objet voulu `&objet=auteur` : diff --git a/gamuform/exemple.php b/gamuform/exemple.php index a6ad473..50320a7 100644 --- a/gamuform/exemple.php +++ b/gamuform/exemple.php @@ -10,6 +10,7 @@ function gamuform_exemple_dist(){ EOF; return [ + // API SAISIES 'options' => [ 'texte_submit' => 'Valider c’est gagné', 'inserer_debut' => 'coucou le debut', @@ -21,16 +22,17 @@ function gamuform_exemple_dist(){ 'nom' => 'type_intervention', 'label' => "Type d'intervention", 'obligatoire' => 'oui', - //'fonction' => 'ma_super_fonction' - //'modifier' => 'ma_super_fonction_pour_modifier' + //'fonction' => 'ma_super_fonction' // Nom de la fonction appelée pour enregistrer ce champ de facon autonome + //'modifier' => 'ma_super_fonction_pour_modifier' // Nom de la fonction appelée pour faire un traitement sur un champ avant l'insertion en bdd ], - 'gamutable' => [ + // la cle gamutable n'est pas obligatoire, si absente, gamutable utilisera des valeurs par defaut et des infos de la clé options de saisie + 'gamutable' => [ // pour le champ type_intervention, comme on définit la clé gamutable, c'est elle qui sera utilisé pour la vue, avec les memes clés que gamutable 'champ' => 'type_intervention', 'header' => 'Type', 'classes' => 'w200p', 'filtreCol' => 'select', 'crayons' => 'nom_objet_SPIP', // nom de l'objet du crayons - 'fonction' => 'Majuscules', // fonction php pour filtre le contenu d'une cellule + 'fonction' => 'Majuscules', // fonction php pour filtre le contenu du champ, elle recoit en argument la valeur du champ ] ], [ @@ -40,7 +42,8 @@ function gamuform_exemple_dist(){ 'libelle' => 'Description', 'label' => 'Description', 'obligatoire' => 'oui', - //'fonction' => 'ma_super_fonction' + 'fonction' => '_array_maSuperFonction' // on peut prefixer le nom de la fonction par _array_ et dans ce cas, on cherche une fonction qui + // s'appelle _array_maSuperFonction ou simplement maSuperFonction, elle recoit en arg, l'array de la ligne (fetsel) et non simplement la valeur du champ ], 'gamutable' => [ 'champ' => 'desc_type_intervention', @@ -65,6 +68,7 @@ function gamuform_exemple_dist(){ // ] ], // possible un array avec simplement la cle gamutable, que pour l'affichage + // cela permet d'avoir une colonne qui s'intercale entre 2 colonnes de champs venant de SAISIES [ 'gamutable' => [ 'champ' => 'maj', diff --git a/gamuform_fonctions.php b/gamuform_fonctions.php index d9581a5..91915aa 100644 --- a/gamuform_fonctions.php +++ b/gamuform_fonctions.php @@ -112,30 +112,29 @@ function gamuform_recup_tableau_objet(string $objet, bool $all = true):array { } function gamuform_objet_autoriser(string $objet):bool { - if ( - !empty($GLOBALS['gamuform_objets']) - and !empty($objet) - and in_array($objet, array_keys($GLOBALS['gamuform_objets'])) - ) { - return true; - } - return false; + return true; + // if ( + // !empty($GLOBALS['gamuform_objets']) + // and !empty($objet) + // and in_array($objet, array_keys($GLOBALS['gamuform_objets'])) + // ) { + // return true; + // } + // return false; } function gamuform_nom_objet($objet, $quoi = 'pluriel'):string { + $trad = ''; if (gamuform_objet_autoriser($objet)) { - if (is_array($GLOBALS['gamuform_objets'][$objet])) { - return $GLOBALS['gamuform_objets'][$objet][$quoi]; + if (!empty($GLOBALS['gamuform_objets'][$objet][$quoi])) { + $trad = $GLOBALS['gamuform_objets'][$objet][$quoi]; + } else if ( !empty($GLOBALS['gamuform_i18n'][$objet][$quoi])){ + $trad = $GLOBALS['gamuform_i18n'][$objet][$quoi]; } else { - - if ($quoi === 'creer') { - return 'Nouveau'; - } else { - return $GLOBALS['gamuform_objets'][$objet]; - } + $trad = _T($objet . ':' . $quoi); } } - return ''; + return $trad; } /** * recuperation des champs de l'objet pour les saisies diff --git a/gamuform_options.php b/gamuform_options.php index 430f53f..7caa5c6 100644 --- a/gamuform_options.php +++ b/gamuform_options.php @@ -13,6 +13,3 @@ if (!defined('_ECRIRE_INC_VERSION')) { return; } -// initialisation de l'objet global -// $GLOBALS['gamuform_objets'] = []; - diff --git a/paquet.xml b/paquet.xml index cc767c8..d677e76 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@