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{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})]">
<h3 class="titrem">
[(#CHEMIN{images/formulaire-reponses-exporter-24.png}|balise_img{horizontale})]
<:formidable:reponses_exporter:></h3>
[(#CHEMIN{images/formulaire-reponses-exporter-24.png}|balise_img{horizontale})]
<:formidable:reponses_exporter:></h3>
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
......@@ -15,8 +16,13 @@
[(#SAISIE{selection, type_export,
label=<:formidable:exporter_formulaire_format_label:>,
datas=#GET{type_export},
defaut=csv,
cacher_option_intro=oui})]
defaut=csv,
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)]>
......
......@@ -23,12 +23,18 @@ function formulaires_exporter_formulaire_reponses_verifier($id_formulaire = 0) {
function formulaires_exporter_formulaire_reponses_traiter($id_formulaire = 0) {
$retours = array();
$statut_reponses = _request('statut_reponses');
if (_request('type_export') == 'csv') {
exporter_formulaires_reponses($id_formulaire);
$ok = exporter_formulaires_reponses($id_formulaire, ',', $statut_reponses);
}
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;
......@@ -40,14 +46,13 @@ function formulaires_exporter_formulaire_reponses_traiter($id_formulaire = 0) {
* @param integer $id_formulaire
* @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
$ok = false;
if (
$id_formulaire > 0
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('facteur_fonctions');
......@@ -60,6 +65,9 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ",") {
_T('formidable:reponses_auteur'),
_T('formidable:reponses_ip')
);
if($statut_reponses != 'publie'){
$titres[] = _T('formidable:reponse_statut');
}
$saisies = saisies_lister_par_nom(unserialize($formulaire['saisies']), false);
foreach ($saisies as $nom => $saisie) {
if ($saisie['saisie'] != "explication") { // on exporte tous les champs sauf explications
......@@ -85,8 +93,11 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ",") {
$reponse['date'],
$nom_auteur,
$reponse['ip']
);
);
if($statut_reponses != 'publie'){
$reponse_complete[] = statut_texte_instituer('formulaires_reponse', $reponse['statut']);
}
// Ensuite tous les champs
foreach ($saisies as $nom => $saisie) {
if ($saisie['saisie'] != "explication") {
......@@ -122,7 +133,8 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ",") {
$exporter_csv('reponses-formulaire-' . $formulaire['identifiant'], $reponses_completes, $delim);
exit();
}
} else {
return false;
}
}
?>
......@@ -75,6 +75,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'erreur_importer_yaml' => 'Erreur durant l’importation du fichier YAML',
'erreur_inexistant' => 'Le formulaire n’existe pas.',
'exporter_formulaire_format_label' => 'Format du fichier',
'exporter_formulaire_statut_label' => 'Réponses',
// F
'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(
'reponses_exporter' => 'Exporter les réponses',
'reponses_exporter_format_csv' => 'Tableur .CSV',
'reponses_exporter_format_xls' => 'Excel .XLS',
'reponses_exporter_statut_publie' => 'Publiées',
'reponses_exporter_statut_tout' => 'Toutes',
'reponses_exporter_telecharger' => 'Télécharger',
'reponses_ip' => 'Adresse IP',
'reponses_liste' => 'Liste des réponses',
......
<paquet
prefix="formidable"
categorie="communication"
version="2.9.2"
version="2.9.3"
etat="stable"
compatibilite="[3.0.0;3.1.*]"
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