Valider 44f8fd2b rédigé par toutati@free.fr's avatar toutati@free.fr
Parcourir les fichiers

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.
parent c76ff874
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+8 −16
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -247,15 +247,7 @@ function formulaires_construire_formulaire_traiter($identifiant, $formulaire_ini
	
	// 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);
		$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);
		}
+1 −5
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -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;
				}
			}
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -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.',
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<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"