Ajout d'une page de configuration des souscriptions.
authorOlivier Tétard <olivier.tetard@miskin.fr>
Sat, 16 Mar 2013 15:26:25 +0000 (16:26 +0100)
committerOlivier Tétard <olivier.tetard@miskin.fr>
Sat, 16 Mar 2013 15:26:25 +0000 (16:26 +0100)
La page permet de configurer les montants des adhésions et des dons
ainsi que le type d'affichage souhaité dans l'espace public.

formulaires/configurer_souscription.html
formulaires/configurer_souscription.php [new file with mode: 0644]
formulaires/souscription.html
lang/souscription_fr.php
paquet.xml
prive/squelettes/contenu/configurer_souscriptions.html [moved from prive/squelettes/contenu/configurer_souscription.html with 58% similarity]

index 7be3579..6967c87 100644 (file)
@@ -9,8 +9,24 @@
        <div>
                #ACTION_FORMULAIRE{#ENV{action}}
 
+                <h2><:souscription:titre_configuration_adhesions:></h2>
+
+                <ul>
+                 [(#SAISIE{case, adhesion_activer, label=<:souscription:label_activer_adhesion:>})]
+                 [(#SAISIE{selection, adhesion_type_saisie, label=<:souscription:label_type_saisie:>, datas=#ARRAY{input, Entrée libre, radio, Boutons radio, selection, Liste déroulante}})]
+                 [(#SAISIE{textarea, adhesion_montants, rows=4, label=<:souscription:label_montants:>, explication=<:souscription:explication_montants:>})]
+                </ul>
+
+                <h2><:souscription:titre_configuration_dons:></h2>
+
+                <ul>
+                 [(#SAISIE{case, don_activer, label=<:souscription:label_activer_don:>})]
+                 [(#SAISIE{selection, don_type_saisie, label=<:souscription:label_type_saisie:>, datas=#ARRAY{input, Entrée libre, radio, Boutons radio, selection, Liste déroulante}})]
+                 [(#SAISIE{textarea, don_montants, rows=4, label=<:souscription:label_montants:>, explication=<:souscription:explication_montants:>})]
+                </ul>
+
                <input type="hidden" name="_meta_casier" value="souscription" />
                <p class="boutons"><span class="image_loading">&nbsp;</span><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
        </div>
        </form>
-</div>
\ No newline at end of file
+</div>
diff --git a/formulaires/configurer_souscription.php b/formulaires/configurer_souscription.php
new file mode 100644 (file)
index 0000000..685070f
--- /dev/null
@@ -0,0 +1,85 @@
+<?php
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+include_spip('inc/config');
+
+function formulaires_configurer_souscription_charger_dist() {
+
+
+  $valeurs = array('adhesion_montants' => montants_array2str(lire_config("souscription/adhesion_montants")),
+                   'adhesion_type_saisie' => lire_config("souscription/adhesion_type_saisie"),
+                   "adhesion_activer" => lire_config("souscription/adhesion_activer"),
+
+                   'don_montants' => montants_array2str(lire_config("souscription/don_montants")),
+                   'don_type_saisie' => lire_config("souscription/don_type_saisie"),
+                   "don_activer" => lire_config("souscription/don_activer"),
+                   );
+
+  return $valeurs;
+}
+
+function formulaires_configurer_souscription_verifier_dist() {
+  /* FIXME: vérifier le format de 'adhesion_montants' et 'don_montants' */
+
+  $erreurs = array();
+  $type_saisies = array("input", "radio", "selection");
+
+  if(_request("adhesion_activer")) {
+    if(!_request("adhesion_type_saisie")) {
+      $erreurs["adhesion_type_saisie"] = "Ce champs est obligatoire";
+    }
+    
+    if(!in_array(_request("adhesion_type_saisie"), $type_saisies)) {
+      $erreurs["adhesion_type_saisie"] = "Le type de saisie pour le montant est invalide";
+    }
+  }
+
+  if(_request("don_activer")) {
+
+    if(!_request("don_type_saisie")) {
+      $erreurs["don_type_saisie"] = "Ce champs est obligatoire";
+    }
+    
+    if(!in_array(_request("don_type_saisie"), $type_saisies)) {
+      $erreurs["don_type_saisie"] = "Le type de saisie pour le montant est invalide";
+    }
+  }
+
+  return $erreurs;
+}
+
+function formulaires_configurer_souscription_traiter_dist() {
+
+  ecrire_config("souscription/adhesion_montants", montants_str2array(_request("adhesion_montants")));
+  ecrire_config("souscription/adhesion_type_saisie", _request("adhesion_type_saisie"));
+  ecrire_config("souscription/adhesion_activer", _request("adhesion_activer"));
+
+  ecrire_config("souscription/don_montants", montants_str2array(_request("don_montants")));
+  ecrire_config("souscription/don_type_saisie", _request("don_type_saisie"));
+  ecrire_config("souscription/don_activer", _request("don_activer"));
+
+  $res = array('message_ok'=>_T('facteur:config_info_enregistree'));
+  
+  return $res;
+}
+
+
+function montants_array2str($array) {
+  $montants = "";
+  foreach($array as $prix => $description) {
+    $montants .= $prix . "|" . $description . "\n";
+  }
+
+  return $montants;
+}
+
+function montants_str2array($str) {
+  $montants = array();
+
+  foreach(explode("\n", trim($str)) as $montant) {
+    list($prix, $description) = explode("|", $montant, 2);
+    $montants[trim($prix)] = trim($description);
+  }
+
+  return $montants;
+}
index 5a57173..a8a3959 100644 (file)
@@ -7,7 +7,11 @@
       #ACTION_FORMULAIRE{#ENV{action}}
       <ul>
        [(#SAISIE{input, courriel, obligatoire=oui, label=<:souscription:label_courriel:>})]
-       [(#SAISIE{input, montant, obligatoire=oui, label=<:souscription:label_montant:>})]
+       [(#SAISIE{#CONFIG{souscription/#ENV{type_souscription}|concat{_type_saisie},input},
+                  montant,
+                  obligatoire=oui,
+                  label=<:souscription:label_montant:>,
+                  datas=#CONFIG{souscription/#ENV{type_souscription}|concat{_montants}}})]
        [(#SAISIE{oui_non, recu_fiscal, label=<:souscription:label_recu_fiscal:>})]
         [(#SAISIE{oui_non, envoyer_info, label=<:souscription:label_envoyer_info:> })]
         [(#ENV{type_souscription}|=={adhesion}|oui) [(#SAISIE{oui_non, informer_comite_local, label=<:souscription:label_informer_comite_local:> })]]
index d5e94ad..549a73d 100644 (file)
@@ -17,7 +17,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
         'titre_souscriptions' => 'Souscriptions',
 
        // T
-       'titre_page_configurer_souscription' => 'Configuration des modules de souscription',
+       'titre_configurer_souscriptions' => 'Souscriptions',
+       'titre_page_configurer_souscriptions' => 'Configuration des souscriptions',
         'titre_page_souscriptions_tous' => 'Liste des souscriptions',
         'titre_types_souscriptions' => 'Types de souscriptions',
 
@@ -29,6 +30,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 
        // E
        'explication_envoyer_info' => 'Souhaite recevoir des informations publiques',
+       'explication_montants' => "Le montants divent être au format suivant: <code>[montant]|[description]</code> à raison d'une entrée par ligne.",
 
        // I
        'icone_creer_souscription' => 'Créer une souscription',
@@ -55,12 +57,18 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
         'label_exporter_tous' => 'Exporter toutes les souscriptions',
         'label_informer_comite_local' => "Informer le comité local le plus proche",
         'label_type_souscription' => "Type de souscription",
+        'label_activer_adhesion' => "Activer le module d'adhésions",
+        'label_activer_don' => "Activer le module dons",
+        'label_type_saisie' => "Types de saisies",
+        'label_montants' => "Montants",
 
        // T
        'texte_ajouter_souscription' => 'Ajouter une souscription',
        'texte_changer_statut_souscription' => 'Cette souscription est :',
        'titre_souscription' => 'Souscription',
        'titre_souscriptions' => 'Souscriptions',
+        'titre_configuration_adhesions' => 'Adhésions',
+        'titre_configuration_dons' => 'Dons',
 
         // V
         'voir_exporter' => "Exporter les dons",
index 7a57f57..579590b 100644 (file)
@@ -25,5 +25,5 @@
   <pipeline nom="optimiser_base_disparus" inclure="souscription_pipelines.php" />
 
   <menu nom="souscription" titre="souscription:titre_souscriptions" parent="menu_activite" icone="images/souscription_don-16.png" action="souscriptions" />
-
+  <menu nom="souscriptions" titre="souscription:titre_configurer_souscriptions" parent="menu_configuration" icone="images/souscriptions-16.png" action="configurer_souscriptions" />
 </paquet>
@@ -1,7 +1,7 @@
-[(#AUTORISER{configurer,_souscription}|sinon_interdire_acces)]
+[(#AUTORISER{configurer,_souscriptions}|sinon_interdire_acces)]
 
-<h1 class="grostitre"><:souscription:titre_page_configurer_souscription:></h1>
+<h1 class="grostitre"><:souscription:titre_page_configurer_souscriptions:></h1>
 
 <div class="ajax">
        #FORMULAIRE_CONFIGURER_SOUSCRIPTION
-</div>
\ No newline at end of file
+</div>