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 ...@@ -59,6 +59,7 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_rep
// La première ligne des titres // La première ligne des titres
$titres = array( $titres = array(
_T('formidable:id_formulaires_reponse'),
_T('public:date'), _T('public:date'),
_T('formidable:reponses_auteur'), _T('formidable:reponses_auteur'),
_T('formidable:reponses_ip') _T('formidable:reponses_ip')
...@@ -101,6 +102,7 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_rep ...@@ -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) // Le début de la réponse avec les infos (date, auteur, etc)
$reponse_complete = array( $reponse_complete = array(
$reponse['id_formulaires_reponse'],
$reponse['date'], $reponse['date'],
$nom_auteur, $nom_auteur,
$reponse['ip'] $reponse['ip']
...@@ -108,9 +110,12 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_rep ...@@ -108,9 +110,12 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_rep
if ($statut_reponses != 'publie') { if ($statut_reponses != 'publie') {
$reponse_complete[] = statut_texte_instituer('formulaires_reponse', $reponse['statut']); $reponse_complete[] = statut_texte_instituer('formulaires_reponse', $reponse['statut']);
} }
$saisies_fichiers = False;
// Ensuite tous les champs // Ensuite tous les champs
foreach ($saisies as $nom => $saisie) { 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') { if ($saisie['saisie'] != 'explication') {
$valeur = sql_getfetsel( $valeur = sql_getfetsel(
'valeur', 'valeur',
...@@ -147,10 +152,23 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_rep ...@@ -147,10 +152,23 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_rep
// On ajoute la ligne à l'ensemble des réponses // On ajoute la ligne à l'ensemble des réponses
$reponses_completes[] = $reponse_complete; $reponses_completes[] = $reponse_complete;
} }
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)) { if ($reponses_completes and $exporter_csv = charger_fonction('exporter_csv', 'inc/', true)) {
$exporter_csv('reponses-formulaire-' . $formulaire['identifiant'], $reponses_completes, $delim); $exporter_csv('reponses-formulaire-' . $formulaire['identifiant'], $reponses_completes, $delim);
exit(); 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 { } else {
return false; return false;
......
...@@ -374,7 +374,27 @@ function formidable_effacer_fichiers_email() { ...@@ -374,7 +374,27 @@ function formidable_effacer_fichiers_email() {
} }
return $dossiers_effaces; 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 * Générer une url d'action pour la récupération d'un fichier lié à une réponse
* @param int|str $id_formulaire * @param int|str $id_formulaire
......
...@@ -16,7 +16,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( ...@@ -16,7 +16,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'heures_minutes_secondes' => "@h@h @m@min @s@s", 'heures_minutes_secondes' => "@h@h @m@min @s@s",
'minutes_secondes' => "@m@min @s@s", 'minutes_secondes' => "@m@min @s@s",
'secondes' => "@s@s", 'secondes' => "@s@s",
'id_formulaires_reponse' => 'Identifiant de la réponse',
// A // A
'activer_pages_explication' => 'Par défaut, les pages publiques des formulaires ne sont pas autorisées', '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', '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