Changeset 101439 in spip-zone


Ignore:
Timestamp:
Dec 30, 2016, 1:30:04 PM (3 years ago)
Author:
maieul@…
Message:

exporter les fichiers lorsqu'on exporte les réponses des fichiers

Location:
_plugins_/formidable/branches/v3_dev
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/formidable/branches/v3_dev/formulaires/exporter_formulaire_reponses.php

    r101427 r101439  
    6060                // La première ligne des titres
    6161                $titres  = array(
     62                        _T('formidable:id_formulaires_reponse'),
    6263                        _T('public:date'),
    6364                        _T('formidable:reponses_auteur'),
     
    102103                        // Le début de la réponse avec les infos (date, auteur, etc)
    103104                        $reponse_complete = array(
     105                                $reponse['id_formulaires_reponse'],
    104106                                $reponse['date'],
    105107                                $nom_auteur,
     
    109111                                $reponse_complete[] = statut_texte_instituer('formulaires_reponse', $reponse['statut']);
    110112                        }
    111 
     113                        $saisies_fichiers = False;
    112114                        // Ensuite tous les champs
    113115                        foreach ($saisies as $nom => $saisie) {
     116                                if ($saisie['saisie'] == 'fichiers') {//tester s'il y a des saisies parmi les fichiers
     117                                        $saisies_fichiers = True;
     118                                }       
    114119                                if ($saisie['saisie'] != 'explication') {
    115120                                        $valeur = sql_getfetsel(
     
    148153                        $reponses_completes[] = $reponse_complete;
    149154                }
    150 
    151                 if ($reponses_completes and $exporter_csv = charger_fonction('exporter_csv', 'inc/', true)) {
    152                         $exporter_csv('reponses-formulaire-' . $formulaire['identifiant'], $reponses_completes, $delim);
    153                         exit();
     155                if (!$saisies_fichiers) {// si pas de saisie fichiers, on envoie directement le csv
     156                        if ($reponses_completes and $exporter_csv = charger_fonction('exporter_csv', 'inc/', true)) {
     157                                $exporter_csv('reponses-formulaire-' . $formulaire['identifiant'], $reponses_completes, $delim);
     158                                exit();
     159                        }
     160                }       else {
     161                        if ($reponses_completes and $exporter_csv = charger_fonction('exporter_csv', 'inc/', true)) {
     162                                $fichier_csv = $exporter_csv('reponses-formulaire-' . $formulaire['identifiant'], $reponses_completes, $delim, null, False);
     163                                $fichier_zip = sous_repertoire(_DIR_CACHE, 'export').'reponses-formulaire-' . $formulaire['identifiant'].'.zip';
     164                                include_spip('inc/formidable_fichiers');
     165                                $fichier_zip = formidable_zipper_reponses_formulaire($formulaire['id_formulaire'], $fichier_zip, $fichier_csv);
     166                                if (!$fichier_zip) {// si erreur lors du zippage
     167                                        return false;
     168                                } else {
     169                                        formidable_retourner_fichier($fichier_zip, basename($fichier_zip));     
     170                                }
     171                        }
    154172                }
    155173        } else {
  • _plugins_/formidable/branches/v3_dev/inc/formidable_fichiers.php

    r101364 r101439  
    375375        return $dossiers_effaces;
    376376}
    377 
     377/**
     378 * Génerer un zip des réponses d'un formulaire
     379 * @param int $id_formulaire  (identifiant numérique)
     380 * @param str $chemin_du_zip chemin complet du zip
     381 * @param str $fichier_csv un fichier csv à ajouter, contenant les réponses
     382 * @return str|int chemin complet du zip ou 0 si erreur lors de la création
     383**/
     384function formidable_zipper_reponses_formulaire($id_formulaire, $chemin_du_zip, $fichier_csv) {
     385        include_spip('inc/pclzip');
     386        $chemin_fichiers = _DIR_FICHIERS_FORMIDABLE."formulaire_$id_formulaire";
     387        $zip = new PclZip("$chemin_du_zip");
     388        if (!$zip -> create($chemin_fichiers,
     389                        PCLZIP_OPT_REMOVE_PATH, $chemin_fichiers)
     390        ) {
     391                return 0;
     392        } else {
     393                $zip -> delete(PCLZIP_OPT_BY_NAME, "test.txt");
     394                $zip -> add($fichier_csv, PCLZIP_OPT_REMOVE_ALL_PATH);
     395                return $chemin_du_zip;
     396        }
     397}
    378398/**
    379399 * Générer une url d'action pour la récupération d'un fichier lié à une réponse
  • _plugins_/formidable/branches/v3_dev/lang/formidable_fr.php

    r101330 r101439  
    1717        'minutes_secondes' => "@m@min @s@s",
    1818        'secondes' => "@s@s",
    19        
     19        'id_formulaires_reponse' => 'Identifiant de la réponse',       
    2020        // A
    2121        'activer_pages_explication' => 'Par défaut, les pages publiques des formulaires ne sont pas autorisées',
Note: See TracChangeset for help on using the changeset viewer.