Valider c9fe6fc4 rédigé par Maïeul's avatar Maïeul
Parcourir les fichiers

Le hidden contenant les infos sur les fichiers envoyés doit être chargé

à toutes les étapes, pas seulement lorsque l'interface d'upload est là,
ce qui permet de garder les fichiers d'une étape à l'autre.

fix saisies#66
parent 96ade242
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+12 −4
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -25,14 +25,19 @@ function cvtupload_formulaire_charger($flux) {
		if ($html_fichiers = cvtupload_generer_html()
		  and $_fichiers = _request('_fichiers')) {
			$contexte['_fichiers_precedents_html'] = $html_fichiers;
			$fichiers_precedents_hidden = cvtupload_generer_hidden();
		}
		elseif (isset($flux['data']['cvtupload_precharger_fichiers'])
		  and ($flux['args']['je_suis_poste']==false or $forcer == true)) {
			$precharger_fichiers = charger_fonction('cvtupload_precharger_fichiers', 'inc');
			$contexte['_fichiers_precedents_html'] = cvtupload_generer_html($precharger_fichiers($flux['data']['cvtupload_precharger_fichiers'],$flux['args']['form']));
		}
	}

		// Stocker en hidden les infos sur les fichiers précédents
		if (isset($fichiers_precedents_hidden)) {
			$flux['data']['_hidden'] .= $fichiers_precedents_hidden;
		}
	}
	return $flux;
}

@@ -126,14 +131,17 @@ function cvtupload_formulaire_verifier($flux) {
			}
		}
		set_request('_fichiers', $infos_fichiers);
		// On utilise ces infos pour générer le HTML et le garder pour charger()
		// On utilise ces infos pour générer le HTML et les HIDDEN et le garder pour charger()
		cvtupload_generer_html($infos_fichiers);
		cvtupload_generer_hidden($infos_fichiers);
		cvtupload_modifier_files($infos_fichiers);//On modifier $_FILES pour que cela soit transparent pour les traitements futurs
	}

	return $flux;
}



/**
 * Nettoyer le FILES s'il y a des erreurs dans les fichiers
 *
+0 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<div class="cvtup-fichier-precedent">
	<input type="hidden" name="cvtupload_fichiers_precedents[(#ENV{crochets})]" value="#ENV{infos_encodees}" />
	<div class="cvtup-description">
		[(#EXTENSION**|in_array{#LISTE{jpg,png,gif}}|?{
			[<a href="(#ENV{url}|attribut_html)" class="mediabox">][(#ENV**{vignette}|balise_img|_image_reduire_base64{150})],
+35 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -92,6 +92,41 @@ function cvtupload_generer_html($infos_fichiers = null) {
	return $html_fichiers;
}


/**
 * Return le hidden de chaque fichier déjà uploadé
 *
 * @param array $infos_fichiers
 * 		Tableau contenant les informations pour chaque champ de fichier
 * @return array
 * 		Retourne un tableau avec pour chaque champ une clé contenant le HTML
 **/
function cvtupload_generer_hidden($infos_fichiers = null) {
	static $hidden_fichiers = '';

	// Si on a des infos de fichiers, on va re-générer du HTML
	if ($infos_fichiers and is_array($infos_fichiers)) {
		foreach ($infos_fichiers as $champ => $fichier) {
			// Si c'est un champ unique
			if (isset($fichier['name'])) {
				$crochets = "[$champ]";
				$infos_encodees = $infos['infos_encodees'];
				$hidden_fichiers .= "<input type='hidden' name='cvtupload_fichiers_precedents$crochets' value='$infos_encodees' />";
			} // Sinon c'est un champ multiple
			else {
				$html_fichiers[$champ] = array();
				foreach ($fichier as $cle => $infos) {
					$crochets = "[$champ][$cle]";
					$infos_encodees = $infos['infos_encodees'];
					$hidden_fichiers .= "<input type='hidden' name='cvtupload_fichiers_precedents$crochets' value='$infos_encodees' />";
				}
			}
		}
	}

	return $hidden_fichiers;
}

/**
 * Déplace un fichier uploadé dans un endroit temporaire et retourne des informations dessus.
 * @param array $fichier