Derniers gros changement qui ne cassent pas la compatibilité :
* la declaration des objets n'existe plus * la declaration des chaines de langue évolue : - soit un array global `$GLOBALS['gamuform_i18n']['mon_objet']` - soit une chaine de langue dans lang/mon_objet_fr.php
This commit is contained in:
parent
2b42ca2ee7
commit
f5e974640f
5 changed files with 35 additions and 45 deletions
28
README.md
28
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` :
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -13,6 +13,3 @@ if (!defined('_ECRIRE_INC_VERSION')) {
|
|||
return;
|
||||
}
|
||||
|
||||
// initialisation de l'objet global
|
||||
// $GLOBALS['gamuform_objets'] = [];
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<paquet
|
||||
prefix="gamuform"
|
||||
categorie="outil"
|
||||
version="1.2.6"
|
||||
version="1.3.0"
|
||||
etat="dev"
|
||||
compatibilite="[4.0.0;4.0.*]"
|
||||
logo="prive/themes/spip/images/gamuform-xx.svg"
|
||||
|
|
Loading…
Add table
Reference in a new issue