Lors de la declaration d'un objet, on peut le declarer via un objet qui

précise les types de chaine de langue. c'est facultatif
This commit is contained in:
Christophe 2022-04-16 15:30:31 +02:00
parent f41d6a6e8b
commit bb8283f026
4 changed files with 45 additions and 13 deletions

View file

@ -1,18 +1,38 @@
# Gamuform # Gamuform
Plugin pour générer des formulaires via saisies et des vues via gamutable semi automatiquement.
Plugin pour générer des formulaires et des vues via gamutable semi automatiquement. ## Déclaration des objets
Il suffit de déclarer la globals 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 :
```php ```php
$GLOBALS['gamuform_objets'] = array_merge( $GLOBALS['gamuform_objets'] = array_merge(
$GLOBALS['gamuform_objets'] ?? [], $GLOBALS['gamuform_objets'] ?? [],
[ 'osdve_interventions_type' => "Types d'intervention"] [
'app_competition' => [
'singulier' => 'competition',
'pluriel' => 'compétitions',
'creer' => 'Créer une nouvelle compétition'
],
'app_competiteur' => "compétiteurs",
]
); );
``` ```
## 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 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 y a un exemple gamuform/exemple.php
## Page
Ensuite, il suffit d'appeler cette page , en paramettre le nom de l'objet voulu: Il suffit d'appeler cette page `spip.php?page=voir_gamuform`, en paramettre le nom de l'objet voulu `&objet=auteur` :
> spip.php?page=voir_gamuform&objet=auteur `spip.php?page=voir_gamuform&objet=auteur`

View file

@ -81,12 +81,20 @@ function gamuform_objet_autoriser(string $objet):bool {
return false; return false;
} }
function gamuform_nom_objet($objet):string { function gamuform_nom_objet($objet, $quoi = 'pluriel'):string {
$nom = '';
if (gamuform_objet_autoriser($objet)) { if (gamuform_objet_autoriser($objet)) {
$nom = $GLOBALS['gamuform_objets'][$objet]; if (is_array($GLOBALS['gamuform_objets'][$objet])) {
return $GLOBALS['gamuform_objets'][$objet][$quoi];
} else {
if ($quoi === 'creer') {
return 'Nouveau';
} else {
return $GLOBALS['gamuform_objets'][$objet];
} }
return $nom; }
}
return '';
} }
/** /**
* recuperation des champs de l'objet pour les saisies * recuperation des champs de l'objet pour les saisies

View file

@ -5,7 +5,11 @@
<div class="tableau"> <div class="tableau">
[(#AUTORISER{creer, gamuform, 0, '', #ARRAY{objet, #ENV{objet}}}|oui) [(#AUTORISER{creer, gamuform, 0, '', #ARRAY{objet, #ENV{objet}}}|oui)
[(#SET{lien,<a class="modalbox btn btn-gamuform" href="[(#URL_PAGE{editer_gamuform}|parametre_url{objet,#ENV{objet}}|parametre_url{redirect,#SELF})]"><i class="osdve-plus-circle"></i>&nbsp;Nouveau</a>})] [(#SET{lien,<a class="modalbox btn btn-gamuform"
href="[(#URL_PAGE{editer_gamuform}|parametre_url{objet,#ENV{objet}}|parametre_url{redirect,#SELF})]">
<i class="osdve-plus-circle"></i>&nbsp;
[(#ENV{objet}|gamuform_nom_objet{creer})]
</a>})]
] ]
#SET{url,spip.php?page=json_gamuform.json&objet=} #SET{url,spip.php?page=json_gamuform.json&objet=}
#SET{url,#GET{url}|concat{#ENV{objet}}} #SET{url,#GET{url}|concat{#ENV{objet}}}

View file

@ -1,7 +1,7 @@
<paquet <paquet
prefix="gamuform" prefix="gamuform"
categorie="outil" categorie="outil"
version="1.1.0" version="1.1.1"
etat="dev" etat="dev"
compatibilite="[4.0.0;4.0.*]" compatibilite="[4.0.0;4.0.*]"
logo="prive/themes/spip/images/gamuform-xx.svg" logo="prive/themes/spip/images/gamuform-xx.svg"