Valider c84a0882 rédigé par nicod@lerebooteux.fr's avatar nicod@lerebooteux.fr
Parcourir les fichiers

Permettre en option de ne pas joindre les fichiers dans un export de réponses...

Permettre en option de ne pas joindre les fichiers dans un export de réponses : sur certains gros formulaires il vaut mieux télécharger un simple csv et récupérer les fichiers par FTP par exemple.
parent 8665a8de
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+6 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -32,6 +32,12 @@
				defaut=valeur
				}
			)]
			[(#ENV{fichiers}|oui)
			[(#SAISIE{case, ignorer_fichiers,
					label=<:formidable:exporter_formulaire_ignorer_fichiers_explication_label:>,
					label_case=<:formidable:exporter_formulaire_ignorer_fichiers_label:>,
				})]
			]
			[(#SAISIE{date, date_debut,
					label=<:formidable:exporter_formulaire_date_debut_label:>
				})]
+15 −6
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -13,6 +13,13 @@ function formulaires_exporter_formulaire_reponses_charger($id_formulaire = 0) {
	$contexte                  = array();
	$contexte['id_formulaire'] = intval($id_formulaire);

	// Vérifier si le formulaire dispose de champs "fichiers", pour proposer de ne pas les joindre à l'export
	$saisies = sql_getfetsel('saisies','spip_formulaires','id_formulaire = '.intval($id_formulaire));
	$saisies_par_type = saisies_lister_par_type(unserialize($saisies), false);
	if(isset($saisies_par_type['fichiers'])){
		$contexte['fichiers'] = true;
	}
	
	return $contexte;
}

@@ -36,17 +43,18 @@ function formulaires_exporter_formulaire_reponses_traiter($id_formulaire = 0) {
	$verifier = charger_fonction('verifier', 'inc/');
	$verifier(_request('date_debut'), 'date', array('normaliser' => 'datetime'), $date_debut);
	$verifier(_request('date_fin'), 'date', array('normaliser' => 'datetime'), $date_fin);
	$ignorer_fichiers = _request('ignorer_fichiers');
	$cle_ou_valeur = _request('cle_ou_valeur');
	$chemin = false;
	$content_type = '';

	if (_request('type_export') == 'csv') {
		$chemin = exporter_formulaires_reponses($id_formulaire, ',', $statut_reponses, $date_debut, $date_fin, $cle_ou_valeur);
		$chemin = exporter_formulaires_reponses($id_formulaire, ',', $statut_reponses, $date_debut, $date_fin, $cle_ou_valeur, $ignorer_fichiers);
		if (pathinfo($chemin, PATHINFO_EXTENSION) === 'csv') {
			$content_type = "text/comma-separated-values; charset=" . $GLOBALS['meta']['charset'];
		}
	} elseif (_request('type_export') == 'xls') {
		$chemin = exporter_formulaires_reponses($id_formulaire, 'TAB', $statut_reponses, $date_debut, $date_fin, $cle_ou_valeur);
		$chemin = exporter_formulaires_reponses($id_formulaire, 'TAB', $statut_reponses, $date_debut, $date_fin, $cle_ou_valeur, $ignorer_fichiers);
		if (pathinfo($chemin, PATHINFO_EXTENSION) === 'xls') {
			$content_type = "text/comma-separated-values; charset=iso-8859-1";
		}
@@ -72,9 +80,10 @@ function formulaires_exporter_formulaire_reponses_traiter($id_formulaire = 0) {
 * @param string $date_debut
 * @param string $date_fin
 * @param string $cle_ou_valeur
 * @param string $ignorer_fichiers
 * @return string|false Chemin du fichier d’export CSV, XLS ou ZIP
 */
function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_reponses = 'publie', $date_debut = '', $date_fin = '',$cle_ou_valeur = 'valeur') {
function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_reponses = 'publie', $date_debut = '', $date_fin = '', $cle_ou_valeur = 'valeur', $ignorer_fichiers = '') {
	$exporter_csv = charger_fonction('exporter_csv', 'inc/', true);
	if (!$exporter_csv) {
		return false;
@@ -85,7 +94,7 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_rep
		return false;
	}

	list($reponses_completes, $saisies_fichiers) = preparer_formulaire_reponses($formulaire, $reponses, $statut_reponses, $cle_ou_valeur);
	list($reponses_completes, $saisies_fichiers) = preparer_formulaire_reponses($formulaire, $reponses, $statut_reponses, $cle_ou_valeur, $ignorer_fichiers);
	if (!$reponses_completes) {
		return false;
	}
@@ -126,7 +135,7 @@ function obtenir_formulaire_reponses($id_formulaire, $statut_reponses = 'publie'
}


function preparer_formulaire_reponses($formulaire, $reponses, $statut_reponses, $cle_ou_valeur = 'valeur') {
function preparer_formulaire_reponses($formulaire, $reponses, $statut_reponses, $cle_ou_valeur = 'valeur', $ignorer_fichiers = '') {
	include_spip('inc/puce_statut');
	include_spip('inc/saisies');
	include_spip('facteur_fonctions');
@@ -230,7 +239,7 @@ function preparer_formulaire_reponses($formulaire, $reponses, $statut_reponses,
			if ($saisie['saisie'] != 'explication') {

				// Saisie de type fichier ?
				if ($saisie['saisie'] == 'fichiers') {
				if (!$ignorer_fichiers && $saisie['saisie'] == 'fichiers') {
					$_valeurs = $tenter_unserialize($valeurs[$nom]);
					//tester s'il y a des saisies parmi les fichiers
					if (is_array($_valeurs) and $_valeurs) {
+2 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -101,6 +101,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
	'exporter_formulaire_date_erreur' => 'La date de début doit être antérieure à la date de fin',
	'exporter_formulaire_date_fin_label' => 'Jusqu’au (inclus)',
	'exporter_formulaire_format_label' => 'Format du fichier',
	'exporter_formulaire_ignorer_fichiers_explication_label' => 'Ce formulaire contient des champs de fichiers, préférez vous ne pas les joindre à l\'export et les télécharger par exemple par FTP ?',
	'exporter_formulaire_ignorer_fichiers_label' => 'Ne pas joindre les fichiers',
	'exporter_formulaire_statut_label' => 'Réponses',

	// F