Changeset 114573 in spip-zone


Ignore:
Timestamp:
Mar 19, 2019, 8:51:03 PM (5 weeks ago)
Author:
root
Message:

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.

Location:
_plugins_/formidable/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/formidable/trunk/formulaires/exporter_formulaire_reponses.html

    r111967 r114573  
    3333                                }
    3434                        )]
     35                        [(#ENV{fichiers}|oui)
     36                        [(#SAISIE{case, ignorer_fichiers,
     37                                        label=<:formidable:exporter_formulaire_ignorer_fichiers_explication_label:>,
     38                                        label_case=<:formidable:exporter_formulaire_ignorer_fichiers_label:>,
     39                                })]
     40                        ]
    3541                        [(#SAISIE{date, date_debut,
    3642                                        label=<:formidable:exporter_formulaire_date_debut_label:>
  • _plugins_/formidable/trunk/formulaires/exporter_formulaire_reponses.php

    r113070 r114573  
    1414        $contexte['id_formulaire'] = intval($id_formulaire);
    1515
     16        // Vérifier si le formulaire dispose de champs "fichiers", pour proposer de ne pas les joindre à l'export
     17        $saisies = sql_getfetsel('saisies','spip_formulaires','id_formulaire = '.intval($id_formulaire));
     18        $saisies_par_type = saisies_lister_par_type(unserialize($saisies), false);
     19        if(isset($saisies_par_type['fichiers'])){
     20                $contexte['fichiers'] = true;
     21        }
     22       
    1623        return $contexte;
    1724}
     
    3744        $verifier(_request('date_debut'), 'date', array('normaliser' => 'datetime'), $date_debut);
    3845        $verifier(_request('date_fin'), 'date', array('normaliser' => 'datetime'), $date_fin);
     46        $ignorer_fichiers = _request('ignorer_fichiers');
    3947        $cle_ou_valeur = _request('cle_ou_valeur');
    4048        $chemin = false;
     
    4250
    4351        if (_request('type_export') == 'csv') {
    44                 $chemin = exporter_formulaires_reponses($id_formulaire, ',', $statut_reponses, $date_debut, $date_fin, $cle_ou_valeur);
     52                $chemin = exporter_formulaires_reponses($id_formulaire, ',', $statut_reponses, $date_debut, $date_fin, $cle_ou_valeur, $ignorer_fichiers);
    4553                if (pathinfo($chemin, PATHINFO_EXTENSION) === 'csv') {
    4654                        $content_type = "text/comma-separated-values; charset=" . $GLOBALS['meta']['charset'];
    4755                }
    4856        } elseif (_request('type_export') == 'xls') {
    49                 $chemin = exporter_formulaires_reponses($id_formulaire, 'TAB', $statut_reponses, $date_debut, $date_fin, $cle_ou_valeur);
     57                $chemin = exporter_formulaires_reponses($id_formulaire, 'TAB', $statut_reponses, $date_debut, $date_fin, $cle_ou_valeur, $ignorer_fichiers);
    5058                if (pathinfo($chemin, PATHINFO_EXTENSION) === 'xls') {
    5159                        $content_type = "text/comma-separated-values; charset=iso-8859-1";
     
    7381 * @param string $date_fin
    7482 * @param string $cle_ou_valeur
     83 * @param string $ignorer_fichiers
    7584 * @return string|false Chemin du fichier d’export CSV, XLS ou ZIP
    7685 */
    77 function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_reponses = 'publie', $date_debut = '', $date_fin = '',$cle_ou_valeur = 'valeur') {
     86function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_reponses = 'publie', $date_debut = '', $date_fin = '', $cle_ou_valeur = 'valeur', $ignorer_fichiers = '') {
    7887        $exporter_csv = charger_fonction('exporter_csv', 'inc/', true);
    7988        if (!$exporter_csv) {
     
    8695        }
    8796
    88         list($reponses_completes, $saisies_fichiers) = preparer_formulaire_reponses($formulaire, $reponses, $statut_reponses, $cle_ou_valeur);
     97        list($reponses_completes, $saisies_fichiers) = preparer_formulaire_reponses($formulaire, $reponses, $statut_reponses, $cle_ou_valeur, $ignorer_fichiers);
    8998        if (!$reponses_completes) {
    9099                return false;
     
    127136
    128137
    129 function preparer_formulaire_reponses($formulaire, $reponses, $statut_reponses, $cle_ou_valeur = 'valeur') {
     138function preparer_formulaire_reponses($formulaire, $reponses, $statut_reponses, $cle_ou_valeur = 'valeur', $ignorer_fichiers = '') {
    130139        include_spip('inc/puce_statut');
    131140        include_spip('inc/saisies');
     
    231240
    232241                                // Saisie de type fichier ?
    233                                 if ($saisie['saisie'] == 'fichiers') {
     242                                if (!$ignorer_fichiers && $saisie['saisie'] == 'fichiers') {
    234243                                        $_valeurs = $tenter_unserialize($valeurs[$nom]);
    235244                                        //tester s'il y a des saisies parmi les fichiers
  • _plugins_/formidable/trunk/lang/formidable_fr.php

    r114471 r114573  
    102102        'exporter_formulaire_date_fin_label' => 'Jusqu’au (inclus)',
    103103        'exporter_formulaire_format_label' => 'Format du fichier',
     104        '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 ?',
     105        'exporter_formulaire_ignorer_fichiers_label' => 'Ne pas joindre les fichiers',
    104106        'exporter_formulaire_statut_label' => 'Réponses',
    105107
Note: See TracChangeset for help on using the changeset viewer.