On continue la refonte, on utilise la cle gamutable pour avoir les

champs et pouvoir separer les saisies de l'affichage
This commit is contained in:
Christophe 2022-04-15 15:53:40 +02:00
parent eb0b20b959
commit 8fe52051d3
6 changed files with 84 additions and 30 deletions

View file

@ -9,6 +9,11 @@
#GENERER_SAISIES{#ENV{_saisies}}
</div>
<p class="boutons"><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
<div class="mt-3 text-center">
<button type="submit" class="btn--gamuform">
<:gamuform:enregistrer:>
&nbsp;<i class="fa fas fa-check"></i>
</button>
</div>
</div></form>
</div>

View file

@ -7,7 +7,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
function formulaires_editer_gamuform_saisies_dist($id_objet = 0, $objet = '', $redirect = '') {
$saisies = false;
if (gamuform_objet_autoriser($objet)) {
$saisies = gamuform_recup_saisies($objet);
$saisies = gamuform_recup_tableau_objet($objet, false);
}
return $saisies;
}
@ -16,7 +16,7 @@ function formulaires_editer_gamuform_charger_dist($id_objet = 0, $objet = '', $r
$table = table_objet_sql($objet);
$id = id_table_objet($objet);
$s = gamuform_recup_champ($objet, true);
$s = gamuform_recup_champs_saisies($objet);
if (intval($id_objet)) {
$valeurs = sql_fetsel($s, $table, "$id=".intval($id_objet));
@ -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 = '') {
$saisies = gamuform_recup_saisies($objet);
$saisies = gamuform_recup_tableau_objet($objet, false);
$table = table_objet_sql($objet);
$id = id_table_objet($objet);

View file

@ -16,6 +16,7 @@ function gamuform_exemple_dist(){
//'modifier' => 'ma_super_fonction_pour_modifier'
],
'gamutable' => [
'champ' => 'type_intervention',
'header' => 'Type',
'classes' => 'w200p',
'filtreCol' => 'select',
@ -33,6 +34,7 @@ function gamuform_exemple_dist(){
//'fonction' => 'ma_super_fonction'
],
'gamutable' => [
'champ' => 'desc_type_intervention',
'header' => 'Compétition',
'classes' => 'w200p',
]
@ -45,6 +47,20 @@ function gamuform_exemple_dist(){
'label' => 'Contrôle OK',
'data' => ['oui' => 'Oui', '' => 'Non']
//'fonction' => 'ma_super_fonction'
],
// la cle gamutable est "normalement" pas obligatoire
// 'gamutable' => [
// 'champ' => 'desc_type_intervention',
// 'header' => 'Compétition',
// 'classes' => 'w200p',
// ]
],
// possible un array avec simplement la cle gamutable, que pour l'affichage
[
'gamutable' => [
'champ' => 'maj',
'header' => 'toto',
'filtreCol' => 'input',
]
],
];

View file

@ -25,11 +25,12 @@ if (!defined('_ECRIRE_INC_VERSION')) {
*/
function gamufiltre($objet, $champ, $valeur) {
if (gamuform_objet_autoriser($objet)) {
$T = gamuform_recup_saisies($objet);
$T = gamuform_recup_tableau_objet($objet);
if (!empty($T)) {
foreach ($T as $s) {
if (
$s['options']['nom'] === $champ
$champ_tab = $s['gamutable']['champ'] ?? $s['options']['nom']
and $champ_tab === $champ
and !empty($s['gamutable']['fonction'])
) {
$filtre = $s['gamutable']['fonction'];
@ -50,7 +51,7 @@ function gamufiltre($objet, $champ, $valeur) {
* @return array
*
*/
function gamuform_recup_saisies(string $objet):array {
function gamuform_recup_tableau_objet(string $objet, bool $all = true):array {
$f = charger_fonction($objet, 'gamuform', true);
if (!$f) {
return [];
@ -59,9 +60,11 @@ function gamuform_recup_saisies(string $objet):array {
if (empty($T)) {
$T = [];
}
if (!$all) {
$T = array_filter($T, function($d){
return !empty($d['saisie']);
});
}
return $T;
}
@ -84,24 +87,45 @@ function gamuform_nom_objet($objet):string {
return $nom;
}
/**
* recuperation des champs de l'objet
* recuperation des champs de l'objet pour les saisies
*
* @param String $objet
*
* @return Array
*/
function gamuform_recup_champs(string $objet):array {
function gamuform_recup_champs_gamutable(string $objet):array {
$c = [];
if (gamuform_objet_autoriser($objet)) {
$T = gamuform_recup_saisies($objet);
$T = gamuform_recup_tableau_objet($objet);
if (!empty($T)) {
foreach ($T as $s) {
$c[] = $s['gamutable']['champ'] ?? $s['options']['nom'];
}
}
}
return $c;
}
/**
* recuperation des champs de l'objet pour les saisies
*
* @param String $objet
*
* @return Array
*/
function gamuform_recup_champs_saisies(string $objet):array {
$c = [];
if (gamuform_objet_autoriser($objet)) {
$T = gamuform_recup_tableau_objet($objet, false);
if (!empty($T)) {
foreach ($T as $s) {
$c[] = $s['options']['nom'];
}
}
}
return $c;
}
@ -116,14 +140,17 @@ function gamuform_recup_header(string $objet):array {
$c = [];
if (gamuform_objet_autoriser($objet)) {
$T = gamuform_recup_saisies($objet);
$T = gamuform_recup_tableau_objet($objet);
if (!empty($T)) {
foreach ($T as $s) {
$c[$s['options']['nom']] = $s['gamutable']['header'] ?? $s['options']['nom'];
$champ = $s['gamutable']['champ'] ?? $s['options']['nom'];
$c[$champ] = $s['gamutable']['header'] ?? $s['options']['nom'];
}
}
}
return $c;
}
/**
@ -137,14 +164,15 @@ function gamuform_recup_crayons(string $objet):array {
$c = [];
if (gamuform_objet_autoriser($objet)) {
$T = gamuform_recup_saisies($objet);
$T = gamuform_recup_tableau_objet($objet);
if (!empty($T)) {
foreach ($T as $s) {
if (
!empty($s['gamutable']['crayons'])
and $champ = $s['gamutable']['champ'] ?? $s['options']['nom']
) {
$c[$s['options']['nom']] = $s['gamutable']['crayons'];
$c[$champ] = $s['gamutable']['crayons'];
}
}
}
@ -162,15 +190,16 @@ function gamuform_recup_filtreCol(string $objet):array {
$c = [];
if (gamuform_objet_autoriser($objet)) {
$T = gamuform_recup_saisies($objet);
$T = gamuform_recup_tableau_objet($objet);
if (!empty($T)) {
foreach ($T as $s) {
if (
!empty($s['gamutable']['filtreCol'])
and in_array($s['gamutable']['filtreCol'], ['input', 'select'])
and $champ = $s['gamutable']['champ'] ?? $s['options']['nom']
) {
$c[$s['options']['nom']] = $s['gamutable']['filtreCol'];
$c[$champ] = $s['gamutable']['filtreCol'];
}
}
}
@ -189,11 +218,12 @@ function gamuform_recup_classes(string $objet):array {
$c = [];
if (gamuform_objet_autoriser($objet)) {
$T = gamuform_recup_saisies($objet);
$T = gamuform_recup_tableau_objet($objet);
if (!empty($T)) {
foreach ($T as $s) {
$c[$s['options']['nom']] = $s['gamutable']['classes'] ?? '';
$champ = $s['gamutable']['champ'] ?? $s['options']['nom'];
$c[$champ] = $s['gamutable']['classes'] ?? '';
}
}
}
@ -213,7 +243,7 @@ function gamuform_recup_valeurs($objet, $id_objet = 0):array {
if (gamuform_objet_autoriser($objet)) {
$table = table_objet_sql($objet);
$id = id_table_objet($objet);
$s = gamuform_recup_champs($objet);
$s = gamuform_recup_champs_gamutable($objet);
$s[] = $id;
if (intval($id_objet)) {

View file

@ -2,7 +2,7 @@
#SET{header,#ENV{objet}|gamuform_recup_header}
#SET{champs,#ENV{objet}|gamuform_recup_champs}
#SET{champs,#ENV{objet}|gamuform_recup_champs_gamutable}
#SET{classes,#ENV{objet}|gamuform_recup_classes}
#SET{filtreCol,#ENV{objet}|gamuform_recup_filtreCol}
#SET{crayons,#ENV{objet}|gamuform_recup_crayons}

View file

@ -8,14 +8,17 @@ if (!defined('_ECRIRE_INC_VERSION')) {
$GLOBALS[$GLOBALS['idx_lang']] = array(
// A
// AA
'ajouter_lien_gamuform' => 'Ajouter ce gamuform',
// C
// CC
'champ_titre_label' => 'Titre',
'confirmer_supprimer_gamuform' => 'Confirmez-vous la suppression de cet gamuform ?',
// I
// EE
'enregistrer' => 'Enregistrer',
// II
'icone_creer_gamuform' => 'Créer un gamuform',
'icone_modifier_gamuform' => 'Modifier ce gamuform',
'info_1_gamuform' => 'Un gamuform',
@ -23,14 +26,14 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'info_gamuforms_auteur' => 'Les gamuforms de cet auteur',
'info_nb_gamuforms' => '@nb@ gamuforms',
// R
// RR
'retirer_lien_gamuform' => 'Retirer ce gamuform',
'retirer_tous_liens_gamuforms' => 'Retirer tous les gamuforms',
// S
// SS
'supprimer_gamuform' => 'Supprimer cet gamuform',
// T
// TT
'texte_ajouter_gamuform' => 'Ajouter un gamuform',
'texte_changer_statut_gamuform' => 'Ce gamuform est :',
'texte_creer_associer_gamuform' => 'Créer et associer un gamuform',