diff --git a/formulaires/exporter_formulaire_reponses.html b/formulaires/exporter_formulaire_reponses.html index 9840488c3c133e745aacc93a42c9b776df41debd..706cb8605812910aed6338227fed8a3abd34f829 100644 --- a/formulaires/exporter_formulaire_reponses.html +++ b/formulaires/exporter_formulaire_reponses.html @@ -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:> })] diff --git a/formulaires/exporter_formulaire_reponses.php b/formulaires/exporter_formulaire_reponses.php index 5766fde106ed56ccfbc216ffda77222226cd8995..79f2f66d06c0e82f98f7b77f22ceb2e2317c1d2d 100644 --- a/formulaires/exporter_formulaire_reponses.php +++ b/formulaires/exporter_formulaire_reponses.php @@ -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) { diff --git a/lang/formidable_fr.php b/lang/formidable_fr.php index 16a0fda4ee03b7d98c13afbbcb9a01ab2c40f9f9..e03c780f60ff64e3fea229f8217ecfc0cf0127ba 100644 --- a/lang/formidable_fr.php +++ b/lang/formidable_fr.php @@ -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