Skip to content
Extraits de code Groupes Projets
Valider e5150a36 rédigé par maieul@maieul.net's avatar maieul@maieul.net
Parcourir les fichiers

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

parent 07d17015
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -59,6 +59,7 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_rep
// La première ligne des titres
$titres = array(
_T('formidable:id_formulaires_reponse'),
_T('public:date'),
_T('formidable:reponses_auteur'),
_T('formidable:reponses_ip')
......@@ -101,6 +102,7 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_rep
// Le début de la réponse avec les infos (date, auteur, etc)
$reponse_complete = array(
$reponse['id_formulaires_reponse'],
$reponse['date'],
$nom_auteur,
$reponse['ip']
......@@ -108,9 +110,12 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_rep
if ($statut_reponses != 'publie') {
$reponse_complete[] = statut_texte_instituer('formulaires_reponse', $reponse['statut']);
}
$saisies_fichiers = False;
// Ensuite tous les champs
foreach ($saisies as $nom => $saisie) {
if ($saisie['saisie'] == 'fichiers') {//tester s'il y a des saisies parmi les fichiers
$saisies_fichiers = True;
}
if ($saisie['saisie'] != 'explication') {
$valeur = sql_getfetsel(
'valeur',
......@@ -147,10 +152,23 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_rep
// On ajoute la ligne à l'ensemble des réponses
$reponses_completes[] = $reponse_complete;
}
if ($reponses_completes and $exporter_csv = charger_fonction('exporter_csv', 'inc/', true)) {
$exporter_csv('reponses-formulaire-' . $formulaire['identifiant'], $reponses_completes, $delim);
exit();
if (!$saisies_fichiers) {// si pas de saisie fichiers, on envoie directement le csv
if ($reponses_completes and $exporter_csv = charger_fonction('exporter_csv', 'inc/', true)) {
$exporter_csv('reponses-formulaire-' . $formulaire['identifiant'], $reponses_completes, $delim);
exit();
}
} else {
if ($reponses_completes and $exporter_csv = charger_fonction('exporter_csv', 'inc/', true)) {
$fichier_csv = $exporter_csv('reponses-formulaire-' . $formulaire['identifiant'], $reponses_completes, $delim, null, False);
$fichier_zip = sous_repertoire(_DIR_CACHE, 'export').'reponses-formulaire-' . $formulaire['identifiant'].'.zip';
include_spip('inc/formidable_fichiers');
$fichier_zip = formidable_zipper_reponses_formulaire($formulaire['id_formulaire'], $fichier_zip, $fichier_csv);
if (!$fichier_zip) {// si erreur lors du zippage
return false;
} else {
formidable_retourner_fichier($fichier_zip, basename($fichier_zip));
}
}
}
} else {
return false;
......
......@@ -374,7 +374,27 @@ function formidable_effacer_fichiers_email() {
}
return $dossiers_effaces;
}
/**
* Génerer un zip des réponses d'un formulaire
* @param int $id_formulaire (identifiant numérique)
* @param str $chemin_du_zip chemin complet du zip
* @param str $fichier_csv un fichier csv à ajouter, contenant les réponses
* @return str|int chemin complet du zip ou 0 si erreur lors de la création
**/
function formidable_zipper_reponses_formulaire($id_formulaire, $chemin_du_zip, $fichier_csv) {
include_spip('inc/pclzip');
$chemin_fichiers = _DIR_FICHIERS_FORMIDABLE."formulaire_$id_formulaire";
$zip = new PclZip("$chemin_du_zip");
if (!$zip -> create($chemin_fichiers,
PCLZIP_OPT_REMOVE_PATH, $chemin_fichiers)
) {
return 0;
} else {
$zip -> delete(PCLZIP_OPT_BY_NAME, "test.txt");
$zip -> add($fichier_csv, PCLZIP_OPT_REMOVE_ALL_PATH);
return $chemin_du_zip;
}
}
/**
* Générer une url d'action pour la récupération d'un fichier lié à une réponse
* @param int|str $id_formulaire
......
......@@ -16,7 +16,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'heures_minutes_secondes' => "@h@h @m@min @s@s",
'minutes_secondes' => "@m@min @s@s",
'secondes' => "@s@s",
'id_formulaires_reponse' => 'Identifiant de la réponse',
// A
'activer_pages_explication' => 'Par défaut, les pages publiques des formulaires ne sont pas autorisées',
'activer_pages_label' => 'Autoriser la création de pages publique pour les formulaires',
......
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