les tableaux des saisies sont maintenant le return d'une fonction dans

gamuform/mon_objet.php.
maj de la doc
This commit is contained in:
Christophe 2022-03-31 11:45:04 +02:00
parent 08ed7119e0
commit c94f8d2816
5 changed files with 93 additions and 43 deletions

View file

@ -1,45 +1,17 @@
# Gamuform # Gamuform
Plugin pour générer des formulaires et des vues via gamutable semi automatiquement. 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 ```php
$GLOBALS['gamuform_objets'] = [ 'auteur' => 'Auteurs']; $GLOBALS['gamuform_objets'] = array_merge(
$GLOBALS['gamuform_objets'],
[ 'osdve_interventions_type' => "Types d'intervention"]
// 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',
)
]
];
``` ```
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: Ensuite, il suffit d'appeler cette page , en paramettre le nom de l'objet voulu:
> spip.php?page=voir_gamuform&objet=auteur > spip.php?page=voir_gamuform&objet=auteur

View file

@ -7,7 +7,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
function formulaires_editer_gamuform_saisies_dist($id_objet = 0, $objet = '', $redirect = '') { function formulaires_editer_gamuform_saisies_dist($id_objet = 0, $objet = '', $redirect = '') {
$saisies = false; $saisies = false;
if (gamuform_objet_autoriser($objet)) { if (gamuform_objet_autoriser($objet)) {
$saisies = $GLOBALS['gamuform_'.$objet]; $saisies = gamuform_recup_saisies($objet);
} }
return $saisies; 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 = '') { 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); $table = table_objet_sql($objet);
$id = id_table_objet($objet); $id = id_table_objet($objet);

41
gamuform/exemple.php Normal file
View file

@ -0,0 +1,41 @@
<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function gamuform_exemple_dist(){
return [
[
'saisie' => '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'
)
],
];
}

View file

@ -13,6 +13,27 @@ if (!defined('_ECRIRE_INC_VERSION')) {
return; 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 { function gamuform_objet_autoriser(string $objet):bool {
if ( if (
!empty($GLOBALS['gamuform_objets']) !empty($GLOBALS['gamuform_objets'])
@ -32,11 +53,20 @@ function gamuform_nom_objet($objet):string {
return $nom; 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 = []; $c = [];
if (gamuform_objet_autoriser($objet)) { if (gamuform_objet_autoriser($objet)) {
$T = $GLOBALS['gamuform_'.$objet]; $T = gamuform_recup_saisies($objet);
if (!empty($T)) { if (!empty($T)) {
foreach ($T as $s) { foreach ($T as $s) {
if ($keys) { if ($keys) {
@ -50,6 +80,14 @@ function gamuform_recup_champ($objet, $keys = false) {
return $c; 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 { function gamuform_recup_valeurs($objet, $id_objet = 0):array {
$r = []; $r = [];
if (gamuform_objet_autoriser($objet)) { if (gamuform_objet_autoriser($objet)) {
@ -74,7 +112,5 @@ function gamuform_recup_valeurs($objet, $id_objet = 0):array {
} }
} }
} }
return $r; return $r;
} }

View file

@ -13,4 +13,5 @@ if (!defined('_ECRIRE_INC_VERSION')) {
return; return;
} }
// initialisation de l'objet global
$GLOBALS['gamuform_objets'] = [];