Skip to content
Extraits de code Groupes Projets
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
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -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:>
})]
......
......@@ -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) {
......
......@@ -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
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter