Newer
Older

camille.sauvage@espci.fr
a validé
<?php
// Sécurité
if (!defined("_ECRIRE_INC_VERSION")) return;

erational@erational.org
a validé
include_spip('inc/formidable');
include_spip('inc/config');
function formulaires_exporter_formulaire_analyse_charger($id_formulaire=0){
$contexte = array();
$contexte['id_formulaire'] = intval($id_formulaire);
return $contexte;
}
function formulaires_exporter_formulaire_analyse_verifier($id_formulaire=0){
$erreurs = array();
return $erreurs;
}
function formulaires_exporter_formulaire_analyse_traiter($id_formulaire=0){
$retours = array();
if (_request('type_export')=='csv')
action_exporter_analyse_reponses($id_formulaire);
else if (_request('type_export')=='xls')
action_exporter_analyse_reponses($id_formulaire,"TAB");
return $retours;
}

camille.sauvage@espci.fr
a validé
/*

erational@erational.org
a validé
* Exporter les analyses d'un formulaire (anciennement action/exporter_analyse_reponses_dist)
* @param integer $id_formulaire

camille.sauvage@espci.fr
a validé
* @return unknown_type
*/

erational@erational.org
a validé
function action_exporter_analyse_reponses($id_formulaire,$delim=",") {

camille.sauvage@espci.fr
a validé
// on ne fait des choses seulements si le formulaire existe et qu'il a des enregistrements
$ok = false;
if (

erational@erational.org
a validé
$id_formulaire > 0

camille.sauvage@espci.fr
a validé
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'))
) {
include_spip('inc/saisies');
include_spip('classes/facteur');
include_spip('inc/filtres');
$reponses_completes = array();

maieul@maieul.net
a validé

camille.sauvage@espci.fr
a validé
$saisies = saisies_lister_par_nom(unserialize($formulaire['saisies']), false);

maieul@maieul.net
a validé
// exclure les champs non analysés
$traitement = unserialize($formulaire['traitements']);
foreach (explode("|",$traitement['enregistrement']['analyse_exclure_champs']) as $exclure){
unset($saisies[$exclure]);
}

camille.sauvage@espci.fr
a validé
$res = sql_select(
array('nom, valeur'),
'spip_formulaires_reponses_champs AS FRC,
spip_formulaires_reponses AS FR,
spip_formulaires AS F',

camille.sauvage@espci.fr
a validé
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
"FRC.id_formulaires_reponse=FR.id_formulaires_reponse
AND FR.statut='publie'
AND F.id_formulaire=FR.id_formulaire
AND F.id_formulaire=$id_formulaire"
);
$valeurs = array();
while($r = sql_fetch($res)) {
$valeurs[$r['nom']][] = is_array(unserialize($r['valeur']))
? unserialize($r['valeur'])
: $r['valeur'];
}
foreach ($saisies as $nom=>$saisie){
$valeur = sql_getfetsel(
'valeur',
'spip_formulaires_reponses_champs',
'id_formulaires_reponse = '.intval($reponse['id_formulaires_reponse']).' and nom = '.sql_quote($nom)
);
if (is_array(unserialize($valeur)))
$valeur = unserialize($valeur);
$reponse_complete[] = formidable_analyser_saisie($saisie, $valeurs, 0, true);
}
$colonnes = array(_T('formidable:champs'), _T('formidable:sans_reponses'));
foreach($reponse_complete as $reponses) {
foreach($reponses as $key => $reponse) {
if ($key == 'header' || $key == 'sans_reponse') continue;
if (in_array($key, $colonnes) == false)
array_push($colonnes, $key);
}
}
$csv = array();
foreach($reponse_complete as $reponses) {
foreach($colonnes as $colonne) {
$csv[$reponses['header']][$colonne] =
isset($reponses[$colonne])
? $reponses[$colonne]
: '';
}
$csv[$reponses['header']][_T('formidable:champs')] = $reponses['header'];
$csv[$reponses['header']][_T('formidable:sans_reponses')]
= $reponses['formidable:sans_reponse'];
}
$cpt_ligne = 1;
$reponses_completes = array();
$reponses_completes[0] = $colonnes;
foreach($csv as $ligne => $colonnes) {
$cpt_colonne = 0;
foreach($colonnes as $colonne) {
$reponses_completes[$cpt_ligne][$cpt_colonne++] = $colonne;
}
$cpt_ligne++;
}
if ($reponses_completes and $exporter_csv = charger_fonction('exporter_csv', 'inc/', true)){

erational@erational.org
a validé
$exporter_csv('analyses-formulaire-'.$formulaire['identifiant'], $reponses_completes, $delim);

camille.sauvage@espci.fr
a validé
exit();
}
}
}
?>