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
|
# Gamuform
|
||||||
Plugin pour générer des formulaires via saisies et des vues via gamutable semi automatiquement.
|
Plugin pour générer des formulaires via saisies et des vues via gamutable semi automatiquement.
|
||||||
|
|
||||||
## Déclaration des objets
|
## Configuration de l'interface pour chaque objet
|
||||||
Il suffit de déclarer la `$GLOBALS['gamuform_objets']`
|
### Chaines de langues de l'interface (2 possibilités)
|
||||||
* soit simplement : `objet => nom de l'objet`
|
* On déclare la `$GLOBALS['gamuform_i18n']['nom_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_i18n'] = array_merge(
|
||||||
$GLOBALS['gamuform_objets'] ?? [],
|
$GLOBALS['gamuform_i18n'] ?? [],
|
||||||
[
|
[
|
||||||
'app_competition' => [
|
'app_competition' => [
|
||||||
'singulier' => 'competition',
|
'singulier' => 'competition',
|
||||||
'pluriel' => 'compétitions',
|
'pluriel' => 'compétitions',
|
||||||
'creer' => 'Créer une nouvelle compétition'
|
'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
|
## 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 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 gamuform/exemple.php
|
> il y a un exemple commenté dans gamuform/exemple.php avec toutes les possibilités offertes
|
||||||
|
|
||||||
## Page
|
## Page
|
||||||
Il suffit d'appeler cette page `spip.php?page=voir_gamuform`, en paramettre le nom de l'objet voulu `&objet=auteur` :
|
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;
|
EOF;
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
// API SAISIES
|
||||||
'options' => [
|
'options' => [
|
||||||
'texte_submit' => 'Valider c’est gagné',
|
'texte_submit' => 'Valider c’est gagné',
|
||||||
'inserer_debut' => 'coucou le debut',
|
'inserer_debut' => 'coucou le debut',
|
||||||
|
@ -21,16 +22,17 @@ function gamuform_exemple_dist(){
|
||||||
'nom' => 'type_intervention',
|
'nom' => 'type_intervention',
|
||||||
'label' => "Type d'intervention",
|
'label' => "Type d'intervention",
|
||||||
'obligatoire' => 'oui',
|
'obligatoire' => 'oui',
|
||||||
//'fonction' => 'ma_super_fonction'
|
//'fonction' => 'ma_super_fonction' // Nom de la fonction appelée pour enregistrer ce champ de facon autonome
|
||||||
//'modifier' => 'ma_super_fonction_pour_modifier'
|
//'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',
|
'champ' => 'type_intervention',
|
||||||
'header' => 'Type',
|
'header' => 'Type',
|
||||||
'classes' => 'w200p',
|
'classes' => 'w200p',
|
||||||
'filtreCol' => 'select',
|
'filtreCol' => 'select',
|
||||||
'crayons' => 'nom_objet_SPIP', // nom de l'objet du crayons
|
'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',
|
'libelle' => 'Description',
|
||||||
'label' => 'Description',
|
'label' => 'Description',
|
||||||
'obligatoire' => 'oui',
|
'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' => [
|
'gamutable' => [
|
||||||
'champ' => 'desc_type_intervention',
|
'champ' => 'desc_type_intervention',
|
||||||
|
@ -65,6 +68,7 @@ function gamuform_exemple_dist(){
|
||||||
// ]
|
// ]
|
||||||
],
|
],
|
||||||
// possible un array avec simplement la cle gamutable, que pour l'affichage
|
// 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' => [
|
'gamutable' => [
|
||||||
'champ' => 'maj',
|
'champ' => 'maj',
|
||||||
|
|
|
@ -112,30 +112,29 @@ function gamuform_recup_tableau_objet(string $objet, bool $all = true):array {
|
||||||
}
|
}
|
||||||
|
|
||||||
function gamuform_objet_autoriser(string $objet):bool {
|
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 true;
|
||||||
}
|
// if (
|
||||||
return false;
|
// !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 {
|
function gamuform_nom_objet($objet, $quoi = 'pluriel'):string {
|
||||||
|
$trad = '';
|
||||||
if (gamuform_objet_autoriser($objet)) {
|
if (gamuform_objet_autoriser($objet)) {
|
||||||
if (is_array($GLOBALS['gamuform_objets'][$objet])) {
|
if (!empty($GLOBALS['gamuform_objets'][$objet][$quoi])) {
|
||||||
return $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 {
|
} else {
|
||||||
|
$trad = _T($objet . ':' . $quoi);
|
||||||
if ($quoi === 'creer') {
|
|
||||||
return 'Nouveau';
|
|
||||||
} else {
|
|
||||||
return $GLOBALS['gamuform_objets'][$objet];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
return $trad;
|
||||||
return '';
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* recuperation des champs de l'objet pour les saisies
|
* recuperation des champs de l'objet pour les saisies
|
||||||
|
|
|
@ -13,6 +13,3 @@ if (!defined('_ECRIRE_INC_VERSION')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// initialisation de l'objet global
|
|
||||||
// $GLOBALS['gamuform_objets'] = [];
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<paquet
|
<paquet
|
||||||
prefix="gamuform"
|
prefix="gamuform"
|
||||||
categorie="outil"
|
categorie="outil"
|
||||||
version="1.2.6"
|
version="1.3.0"
|
||||||
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"
|
||||||
|
|
Loading…
Add table
Reference in a new issue