From 2f7d13df8f2afe94ee51da771f8aace3bd143b2f Mon Sep 17 00:00:00 2001
From: "marcimat@rezo.net" <>
Date: Thu, 6 Sep 2012 12:29:41 +0000
Subject: [PATCH] =?UTF-8?q?On=20permet=20de=20choisir=20l'affichage=20des?=
 =?UTF-8?q?=20statistiques=20de=20r=C3=A9ponses=20apr=C3=A8s=20la=20saisie?=
 =?UTF-8?q?=20d'un=20formulaire=20(et=20si=20on=20a=20d=C3=A9j=C3=A0=20rem?=
 =?UTF-8?q?pli=20le=20formulaire=20et=20qu'on=20peut=20pas=20resaisir).=20?=
 =?UTF-8?q?On=20permet=20de=20configurer=20la=20classe=20css=20appliqu?=
 =?UTF-8?q?=C3=A9e=20sur=20le=20mod=C3=A8le=20des=20barres=20de=20progress?=
 =?UTF-8?q?ion=20des=20statistiques.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitattributes                                |  2 ++
 formidable_options.php                        |  1 +
 .../configurer_formidable_analyse.html        | 20 +++++++++++++++++++
 formulaires/editer_formulaire.html            |  1 -
 formulaires/formidable.html                   |  5 +++++
 formulaires/formidable.php                    | 17 +++++++++++++---
 lang/formidable_fr.php                        |  9 +++++++++
 modeles/formulaire_analyse.html               |  2 +-
 paquet.xml                                    |  2 +-
 .../contenu/configurer_formidable.html        |  7 +++++++
 10 files changed, 60 insertions(+), 6 deletions(-)
 create mode 100644 formulaires/configurer_formidable_analyse.html
 create mode 100644 prive/squelettes/contenu/configurer_formidable.html

diff --git a/.gitattributes b/.gitattributes
index 3b213029..ba9394d1 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -17,6 +17,7 @@ exec/puce_statut_formulaires.php -text
 /formidable_fonctions.php -text
 /formidable_options.php -text
 /formidable_pipelines.php -text
+formulaires/configurer_formidable_analyse.html -text
 formulaires/editer_formulaire.html -text
 formulaires/editer_formulaire.php -text
 formulaires/editer_formulaire_champs.html -text
@@ -66,6 +67,7 @@ prive/liste/formulaires.html -text
 prive/liste/formulaires_reponses.html -text
 prive/objets/infos/formulaire.html -text
 prive/objets/infos/formulaires_reponse.html -text
+prive/squelettes/contenu/configurer_formidable.html -text
 prive/squelettes/contenu/formulaires_analyse.html -text
 prive/squelettes/contenu/formulaires_editer.html -text
 prive/squelettes/contenu/formulaires_reponse.html -text
diff --git a/formidable_options.php b/formidable_options.php
index 7cf1efba..5a055d56 100644
--- a/formidable_options.php
+++ b/formidable_options.php
@@ -65,6 +65,7 @@ $GLOBALS['formulaires']['editer_formulaire'] = array(
 			'datas' => array(
 				'formulaire' => _T('formidable:editer_apres_choix_formulaire'),
 				'valeurs' => _T('formidable:editer_apres_choix_valeurs'),
+				'stats' => _T('formidable:editer_apres_choix_stats'),
 				'rien' => _T('formidable:editer_apres_choix_rien'),
 				'redirige' => _T('formidable:editer_apres_choix_redirige'),
 			),
diff --git a/formulaires/configurer_formidable_analyse.html b/formulaires/configurer_formidable_analyse.html
new file mode 100644
index 00000000..a8caa8bf
--- /dev/null
+++ b/formulaires/configurer_formidable_analyse.html
@@ -0,0 +1,20 @@
+<div class="formulaire_spip formulaire_configurer formulaire_#FORM">
+
+	<h3 class="titrem"><:formidable:cfg_titre_parametrages_analyse:></h3>
+
+	[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
+	[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
+
+	<form method="post" action="#ENV{action}">
+	<div>
+		#ACTION_FORMULAIRE{#ENV{action}}
+
+		[(#SAISIE{input,classe,
+			label=<:formidable:cfg_analyse_classe_label:>,
+			explication=<:formidable:cfg_analyse_classe_explication:>
+			})]
+		<input type="hidden" name="_meta_casier" value="formidable/analyse" />
+		<p class="boutons"><span class="image_loading">&nbsp;</span><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
+	</div>
+	</form>
+</div>
diff --git a/formulaires/editer_formulaire.html b/formulaires/editer_formulaire.html
index 3bbc7629..cd8445eb 100644
--- a/formulaires/editer_formulaire.html
+++ b/formulaires/editer_formulaire.html
@@ -1,7 +1,6 @@
 <div class="formulaire_spip formulaire_editer formulaire_#ENV{form}[ formulaire_#ENV{form}-(#ENV{id_formulaire,nouveau})]">
 	[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
 	[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
-	
 	[(#ENV{editable}|oui)
 	<form method='post' action='#ENV{action}' enctype='multipart/form-data'><div>
 		[(#REM) declarer les hidden qui declencheront le service du formulaire 
diff --git a/formulaires/formidable.html b/formulaires/formidable.html
index 8c15f6b5..80b0648e 100644
--- a/formulaires/formidable.html
+++ b/formulaires/formidable.html
@@ -1,3 +1,7 @@
+<BOUCLE_remplacer_le_formulaire(CONDITION){si #ENV{_remplacer_formulaire}}>
+	[(#REM) Afficher du HTML si prévu par un plugin ou pour les stats ]
+	[(#ENV**{_remplacer_formulaire})]
+</BOUCLE_remplacer_le_formulaire>
 <div class="formulaire_spip formulaire_#ENV{form}[ formulaire_#ENV{form}-(#ENV{id,nouveau})]">
 	[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
 	[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
@@ -34,3 +38,4 @@
 	]
 	<br />
 </div>
+<//B_remplacer_le_formulaire>
diff --git a/formulaires/formidable.php b/formulaires/formidable.php
index 129552a1..227cb2ed 100644
--- a/formulaires/formidable.php
+++ b/formulaires/formidable.php
@@ -108,7 +108,18 @@ function formulaires_formidable_charger($id_formulaire, $valeurs=array(), $id_fo
 		}
 		else{
 			$contexte['editable'] = false;
-			$contexte['message_erreur'] = _T('formidable:traiter_enregistrement_erreur_deja_repondu');
+			// le formulaire a déjà été répondu.
+			// peut être faut il afficher les statistiques des réponses
+			if ($formulaire['apres'] == 'stats') {
+				// Nous sommes face à un sondage auquel on a déjà répondu !
+				// On remplace complètement l'affichage du formulaire
+				// par un affichage du résultat de sondage !
+				$contexte['_remplacer_formulaire'] = recuperer_fond('modeles/formulaire_analyse', array(
+					'id_formulaire' => $formulaire['id_formulaire'],
+				));
+			} else {
+				$contexte['message_erreur'] = _T('formidable:traiter_enregistrement_erreur_deja_repondu');
+			}
 		}
 	}
 	else{
@@ -194,11 +205,11 @@ function formulaires_formidable_traiter($id_formulaire, $valeurs=array(), $id_fo
 	$id_formulaire = intval(_request('id_formulaire'));
 	$formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = '.$id_formulaire);
 	$traitements = unserialize($formulaire['traitements']);
-		
+
 	// selon le choix, le formulaire se remet en route à la fin ou non
 	$retours['editable'] = ($formulaire['apres']=='formulaire');
 	$retours['formidable_afficher_apres'] = $formulaire['apres'];
-	
+
 	// Si on a une redirection valide
 	if (($formulaire['apres']== "redirige") AND ($formulaire['url_redirect']!="")) {
 		refuser_traiter_formulaire_ajax();
diff --git a/lang/formidable_fr.php b/lang/formidable_fr.php
index 5340c2a1..0d835ed5 100644
--- a/lang/formidable_fr.php
+++ b/lang/formidable_fr.php
@@ -16,6 +16,14 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 	// B
 	'bouton_formulaires' => 'Formulaires',
 
+	// C
+	'cfg_analyse_classe_label' => 'Classe CSS de la barre de progression',
+	'cfg_analyse_classe_explication' => 'Vous pouvez indiquer des classes CSS qui seront ajoutées
+		sur le conteneur de chaque graphique, tel que <code>gray</code>,<code>blue</code>,
+		<code>orange</code>, <code>green</code> ou tout ce qui vous plairait !',
+	'cfg_titre_parametrages_analyse' => 'Paramétrages de l\'analyse des réponses',
+	'cfg_titre_page_configurer_formidable' => 'Configurer Formidable',
+
 	// E
 	'echanger_formulaire_forms_importer' => 'Forms & Tables (.xml)',
 	'echanger_formulaire_wcs_importer' => 'W.C.S. (.wcs)',
@@ -23,6 +31,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 	'editer_apres_choix_formulaire' => 'Le formulaire, à nouveau',
 	'editer_apres_choix_redirige' => 'Rediriger vers une nouvelle adresse',
 	'editer_apres_choix_rien' => 'Rien du tout',
+	'editer_apres_choix_stats' => 'Les statistiques des réponses',
 	'editer_apres_choix_valeurs' => 'Les valeurs saisies',
 	'editer_apres_explication' => 'Après validation, afficher à la place du formulaire :',
 	'editer_apres_label' => 'Afficher ensuite',
diff --git a/modeles/formulaire_analyse.html b/modeles/formulaire_analyse.html
index 14971475..4c39c70c 100644
--- a/modeles/formulaire_analyse.html
+++ b/modeles/formulaire_analyse.html
@@ -47,7 +47,7 @@ $(document).ready(function(){
 					$reponses = "<small> - " + $reponses + "</small>";
 				}
 				$text = "\
-				<div class='[(#CONFIG{formidable/analyse_classe}) ]progress-bar'>\
+				<div class='[(#CONFIG{formidable/analyse/classe}) ]progress-bar'>\
 					<span></span><strong>" + $taux + "%" + $reponses + "</strong>\
 				</div>";
 				$(this).html($text).find('span').width($taux + '%');
diff --git a/paquet.xml b/paquet.xml
index 7a91ca0c..bc13b845 100644
--- a/paquet.xml
+++ b/paquet.xml
@@ -1,7 +1,7 @@
 <paquet
 	prefix="formidable"
 	categorie="communication"
-	version="1.1.3"
+	version="1.2.0"
 	etat="dev"
 	compatibilite="[3.0.0-dev;3.0.99]"
 	logo="images/formidable-64.png"
diff --git a/prive/squelettes/contenu/configurer_formidable.html b/prive/squelettes/contenu/configurer_formidable.html
new file mode 100644
index 00000000..df8aa011
--- /dev/null
+++ b/prive/squelettes/contenu/configurer_formidable.html
@@ -0,0 +1,7 @@
+[(#AUTORISER{configurer,_fsondage}|sinon_interdire_acces)]
+
+<h1 class="grostitre"><:formidable:cfg_titre_page_configurer_formidable:></h1>
+
+<div class="ajax">
+	#FORMULAIRE_CONFIGURER_FORMIDABLE_ANALYSE
+</div>
-- 
GitLab