Browse Source

Se passe du couple yaml/html pour les groupes de saisies

- il suffit d'un unique .yaml dans saisies/groupes/ déclarant des saisies et leurs options 

- Résolu : dans traitements de la saisie champ qui buggait -> Le tableau reconstruit lors de l'import d'un groupe de champs  imbriquait à chaque saisie un tableau d'options

Up de Y du coup :) 

Testez en déposant un yaml de votre choix dans un dossier saisies/groupes/
dans le cas contraire les dernières modifs ne changent rien du comportement de formidable.
svn/root/tags/v2.6.0 v2.6.0
toutati@free.fr 7 years ago
parent
commit
44f8fd2b10
  1. 24
      formulaires/construire_formulaire.php
  2. 6
      inc/saisies_lister.php
  3. 2
      lang/saisies_fr.php
  4. 2
      paquet.xml

24
formulaires/construire_formulaire.php

@ -246,16 +246,8 @@ function formulaires_construire_formulaire_traiter($identifiant, $formulaire_ini
$formulaire_actuel = session_get($identifiant);
// Si on demande à ajouter un groupe
if ($ajouter_saisie = _request('ajouter_groupe_saisie')){
$nom = saisies_generer_nom($formulaire_actuel, $ajouter_saisie);
$saisie = array(
'saisie' => $ajouter_saisie,
'options' => array(
'nom' => $nom
)
);
//chercher les saisies du groupe
$formulaire_actuel = saisies_groupe_inserer($nom, $saisie, $formulaire_actuel);
if ($ajouter_saisie = _request('ajouter_groupe_saisie')){
$formulaire_actuel = saisies_groupe_inserer($formulaire_actuel, $ajouter_saisie);
}
// Si on demande à ajouter une saisie
@ -555,12 +547,13 @@ function saisie_option_contenu_vide($var) {
return true;
}
function saisies_groupe_inserer($nom, $saisie, $formulaire_actuel){
function saisies_groupe_inserer($formulaire_actuel, $saisie){
include_spip('inclure/configurer_saisie_fonctions');
//on va chercher le groupe de saisies
$saisies_charger_infos = saisies_charger_infos($saisie['saisie'],$saisies_repertoire = "saisies/groupes");
//le groupe de saisies
$saisies_charger_infos = saisies_charger_infos($saisie,$saisies_repertoire = "saisies/groupes");
//le tableau est-il en options ou en saisies ?
$classique_yaml=count($saisies_charger_infos['options']);
$formidable_yaml=count($saisies_charger_infos['saisies']);
if($classique_yaml>0) {
@ -570,13 +563,12 @@ function saisies_groupe_inserer($nom, $saisie, $formulaire_actuel){
$champ_options = 'saisies';
}
//les champs du groupe
foreach($saisies_charger_infos[$champ_options] as $info_saisie){
spip_log("identifiant=".$info_saisie['identifiant'],"ajouter_saisie");
unset($info_saisie['identifiant']);
$saisies_disponibles = saisies_lister_disponibles();
$construire_nom = $info_saisie[$champ_options]['nom'] ? $info_saisie[$champ_options]['nom'] : $info_saisie['saisie'];
$nom = $info_saisie[$champ_options]['nom'] = saisies_generer_nom($formulaire_actuel,$construire_nom);
$saisie_saisie = $info_saisie['saisie'];
spip_log("each // nom = ".$nom." saisie =".$saisie_saisie,"ajouter_saisie");
$formulaire_actuel = saisies_inserer($formulaire_actuel, $info_saisie);
}

6
inc/saisies_lister.php

@ -311,11 +311,7 @@ function saisies_groupes_lister_disponibles($saisies_repertoire = "saisies") {
$type_saisie = preg_replace(',[.]yaml$,i', '', $fichier);
$dossier = str_replace($fichier, '', $chemin);
// On ne garde que les saisies qui ont bien le HTML avec !
if (file_exists("$dossier$type_saisie.html")
and (
is_array($saisie = saisies_charger_infos($type_saisie,$saisies_repertoire))
)
) {
if (is_array($saisie = saisies_charger_infos($type_saisie,$saisies_repertoire))) {
$saisies[$type_saisie] = $saisie;
}
}

2
lang/saisies_fr.php

@ -21,7 +21,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'construire_action_dupliquer_copie' => '(copie)',
'construire_action_supprimer' => 'Supprimer',
'construire_ajouter_champ' => 'Ajouter un champ',
'construire_ajouter_groupe' => 'Ajouter un ensemble de champs (expérimental)',
'construire_ajouter_groupe' => 'Ajouter un groupe',
'construire_attention_enregistrer' => 'N’oubliez pas d’enregistrer vos modifications !',
'construire_attention_modifie' => 'Le formulaire ci-dessous est différent du formulaire initial. Vous avez la possibilité de le réinitialiser à son état avant vos modifications.',
'construire_attention_supprime' => 'Vos modifications comportent des suppressions de champs. Veuillez confirmer l’enregistrement de cette nouvelle version du formulaire.',

2
paquet.xml

@ -1,7 +1,7 @@
<paquet
prefix="saisies"
categorie="outil"
version="2.5.30"
version="2.6.0"
etat="stable"
compatibilite="[3.0.0;3.1.*]"
logo="images/logo_saisie_48.png"

Loading…
Cancel
Save