Skip to content
Extraits de code Groupes Projets
Valider 1c8321ee rédigé par nicolas.dorigny@gmail.com's avatar nicolas.dorigny@gmail.com
Parcourir les fichiers

Ajout d'une option pour l'export des réponses : uniquement les publiées, ou toutes.

Retour avec message d'erreur si aucune réponse exportée.
parent cf1af4a8
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
[(#SET{type_export, #ARRAY{csv,<:formidable:reponses_exporter_format_csv:>,xls,<:formidable:reponses_exporter_format_xls:>}})] [(#SET{type_export, #ARRAY{csv,<:formidable:reponses_exporter_format_csv:>,xls,<:formidable:reponses_exporter_format_xls:>}})]
[(#SET{statut, #ARRAY{publie,<:formidable:reponses_exporter_statut_publie:>,tout,<:formidable:reponses_exporter_statut_tout:>}})]
<div class="formulaire_spip formulaire_#ENV{form}[ formulaire_#ENV{form}-(#ENV{id})]"> <div class="formulaire_spip formulaire_#ENV{form}[ formulaire_#ENV{form}-(#ENV{id})]">
<h3 class="titrem"> <h3 class="titrem">
[(#CHEMIN{images/formulaire-reponses-exporter-24.png}|balise_img{horizontale})] [(#CHEMIN{images/formulaire-reponses-exporter-24.png}|balise_img{horizontale})]
<:formidable:reponses_exporter:></h3> <:formidable:reponses_exporter:></h3>
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>] [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
...@@ -15,8 +16,13 @@ ...@@ -15,8 +16,13 @@
[(#SAISIE{selection, type_export, [(#SAISIE{selection, type_export,
label=<:formidable:exporter_formulaire_format_label:>, label=<:formidable:exporter_formulaire_format_label:>,
datas=#GET{type_export}, datas=#GET{type_export},
defaut=csv, defaut=csv,
cacher_option_intro=oui})] cacher_option_intro=oui})]
[(#SAISIE{selection, statut_reponses,
label=<:formidable:exporter_formulaire_statut_label:>,
datas=#GET{statut},
defaut=publie,
cacher_option_intro=oui})]
</[(#VAL{ul}|saisie_balise_structure_formulaire)]> </[(#VAL{ul}|saisie_balise_structure_formulaire)]>
......
...@@ -23,12 +23,18 @@ function formulaires_exporter_formulaire_reponses_verifier($id_formulaire = 0) { ...@@ -23,12 +23,18 @@ function formulaires_exporter_formulaire_reponses_verifier($id_formulaire = 0) {
function formulaires_exporter_formulaire_reponses_traiter($id_formulaire = 0) { function formulaires_exporter_formulaire_reponses_traiter($id_formulaire = 0) {
$retours = array(); $retours = array();
$statut_reponses = _request('statut_reponses');
if (_request('type_export') == 'csv') { if (_request('type_export') == 'csv') {
exporter_formulaires_reponses($id_formulaire); $ok = exporter_formulaires_reponses($id_formulaire, ',', $statut_reponses);
} }
else if (_request('type_export') == 'xls') { else if (_request('type_export') == 'xls') {
exporter_formulaires_reponses($id_formulaire, "TAB"); $ok = exporter_formulaires_reponses($id_formulaire, 'TAB', $statut_reponses);
}
if(!$ok) {
$retours['editable'] = 1;
$retours['message_erreur'] = _T('formidable:info_aucune_reponse');
} }
return $retours; return $retours;
...@@ -40,14 +46,13 @@ function formulaires_exporter_formulaire_reponses_traiter($id_formulaire = 0) { ...@@ -40,14 +46,13 @@ function formulaires_exporter_formulaire_reponses_traiter($id_formulaire = 0) {
* @param integer $id_formulaire * @param integer $id_formulaire
* @return unknown_type * @return unknown_type
*/ */
function exporter_formulaires_reponses($id_formulaire, $delim = ",") { function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_reponses = 'publie') {
include_spip('inc/puce_statut');
// on ne fait des choses seulements si le formulaire existe et qu'il a des enregistrements // on ne fait des choses seulements si le formulaire existe et qu'il a des enregistrements
$ok = false;
if ( if (
$id_formulaire > 0 $id_formulaire > 0
and $formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = ' . $id_formulaire) and $formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = ' . $id_formulaire)
and $reponses = sql_allfetsel('*', 'spip_formulaires_reponses', 'id_formulaire = ' . $id_formulaire . ' and statut = ' . sql_quote('publie')) and $reponses = sql_allfetsel('*', 'spip_formulaires_reponses', 'id_formulaire = ' . $id_formulaire . ($statut_reponses == 'publie' ? ' and statut = "publie"' : ''))
) { ) {
include_spip('inc/saisies'); include_spip('inc/saisies');
include_spip('facteur_fonctions'); include_spip('facteur_fonctions');
...@@ -60,6 +65,9 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ",") { ...@@ -60,6 +65,9 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ",") {
_T('formidable:reponses_auteur'), _T('formidable:reponses_auteur'),
_T('formidable:reponses_ip') _T('formidable:reponses_ip')
); );
if($statut_reponses != 'publie'){
$titres[] = _T('formidable:reponse_statut');
}
$saisies = saisies_lister_par_nom(unserialize($formulaire['saisies']), false); $saisies = saisies_lister_par_nom(unserialize($formulaire['saisies']), false);
foreach ($saisies as $nom => $saisie) { foreach ($saisies as $nom => $saisie) {
if ($saisie['saisie'] != "explication") { // on exporte tous les champs sauf explications if ($saisie['saisie'] != "explication") { // on exporte tous les champs sauf explications
...@@ -85,8 +93,11 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ",") { ...@@ -85,8 +93,11 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ",") {
$reponse['date'], $reponse['date'],
$nom_auteur, $nom_auteur,
$reponse['ip'] $reponse['ip']
); );
if($statut_reponses != 'publie'){
$reponse_complete[] = statut_texte_instituer('formulaires_reponse', $reponse['statut']);
}
// Ensuite tous les champs // Ensuite tous les champs
foreach ($saisies as $nom => $saisie) { foreach ($saisies as $nom => $saisie) {
if ($saisie['saisie'] != "explication") { if ($saisie['saisie'] != "explication") {
...@@ -122,7 +133,8 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ",") { ...@@ -122,7 +133,8 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ",") {
$exporter_csv('reponses-formulaire-' . $formulaire['identifiant'], $reponses_completes, $delim); $exporter_csv('reponses-formulaire-' . $formulaire['identifiant'], $reponses_completes, $delim);
exit(); exit();
} }
} else {
return false;
} }
} }
?>
...@@ -75,6 +75,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( ...@@ -75,6 +75,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'erreur_importer_yaml' => 'Erreur durant l’importation du fichier YAML', 'erreur_importer_yaml' => 'Erreur durant l’importation du fichier YAML',
'erreur_inexistant' => 'Le formulaire n’existe pas.', 'erreur_inexistant' => 'Le formulaire n’existe pas.',
'exporter_formulaire_format_label' => 'Format du fichier', 'exporter_formulaire_format_label' => 'Format du fichier',
'exporter_formulaire_statut_label' => 'Réponses',
// F // F
'formulaire_anonyme_explication' => 'Ce formulaire est anonyme, c’est à dire que l’identité de l’utilisateur n’est pas enregistrée.', 'formulaire_anonyme_explication' => 'Ce formulaire est anonyme, c’est à dire que l’identité de l’utilisateur n’est pas enregistrée.',
...@@ -135,6 +136,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( ...@@ -135,6 +136,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'reponses_exporter' => 'Exporter les réponses', 'reponses_exporter' => 'Exporter les réponses',
'reponses_exporter_format_csv' => 'Tableur .CSV', 'reponses_exporter_format_csv' => 'Tableur .CSV',
'reponses_exporter_format_xls' => 'Excel .XLS', 'reponses_exporter_format_xls' => 'Excel .XLS',
'reponses_exporter_statut_publie' => 'Publiées',
'reponses_exporter_statut_tout' => 'Toutes',
'reponses_exporter_telecharger' => 'Télécharger', 'reponses_exporter_telecharger' => 'Télécharger',
'reponses_ip' => 'Adresse IP', 'reponses_ip' => 'Adresse IP',
'reponses_liste' => 'Liste des réponses', 'reponses_liste' => 'Liste des réponses',
......
<paquet <paquet
prefix="formidable" prefix="formidable"
categorie="communication" categorie="communication"
version="2.9.2" version="2.9.3"
etat="stable" etat="stable"
compatibilite="[3.0.0;3.1.*]" compatibilite="[3.0.0;3.1.*]"
logo="images/formidable-64.png" logo="images/formidable-64.png"
......
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