Utilisation de la balise #AVANCEMENT_CAMPAGNE dans les squelettes.
[spip_souscriptions.git] / formulaires / editer_souscription_campagne.php
index 8ee6116..d1b5695 100644 (file)
@@ -31,14 +31,72 @@ function formulaires_editer_souscription_campagne_charger_dist($id_souscription_
                                                                $row=array(),
                                                                $hidden='')
 {
-  return formulaires_editer_objet_charger('souscription_campagne',
-                                          $id_souscription_campagne,
-                                          '',
-                                          $lier_trad,
-                                          $retour,
-                                          $config_fonc,
-                                          $row,
-                                          $hidden);
+  $valeurs = formulaires_editer_objet_charger('souscription_campagne',
+                                             $id_souscription_campagne,
+                                             '',
+                                             $lier_trad,
+                                             $retour,
+                                             $config_fonc,
+                                             $row,
+                                             $hidden);
+
+  $valeurs['objectif_oui_non'] = _request('objectif_oui_non');
+
+  /* Si la valeur du champ 'objectif' est 0, alors, c'est que
+   * l'objectif n'est pas activé. */
+  $defaut_objectif = "";
+  if($valeurs['objectif'] && $valeurs['objectif'] > 0)
+    $defaut_objectif = "on";
+
+  $saisies = array(array('saisie' => 'input',
+                        'options' => array('nom' => 'titre',
+                                           'label' => _T('souscription:label_titre'),
+                                           'obligatoire' => 'oui')
+                        ),
+                  array('saisie' => 'selection',
+                        'options' => array('nom' => 'type_objectif',
+                                           'obligatoire' => 'oui',
+                                           'label' => _T('souscription:label_type_objectif'),
+                                           'explication' => _T('souscription:explication_type_objectif'),
+                                           'datas' => array('don' => 'Dons',
+                                                            'adhesion' => 'Adhésions'))
+                        ),
+                  array('saisie' => 'oui_non',
+                        'options' => array('nom' => 'objectif_oui_non',
+                                           'label' => _T('souscription:label_objectif_oui_non'),
+                                           'defaut' => $defaut_objectif)
+                        ),
+                  array('saisie' => 'fieldset',
+                        'options' => array('nom' => 'groupe_limite',
+                                           'label' => _T('souscription:label_objectif_groupe'),
+                                           'afficher_si' => '@objectif_oui_non@ == "on"'),
+                        'saisies' => array(array('saisie' => 'input',
+                                                 'options' => array('nom' => 'objectif',
+                                                                    'obligatoire' => 'oui',
+                                                                    'label' => _T('souscription:label_objectif'),
+                                                                    'explication' => _T('souscription:explication_campagne_objectif')),
+                                                 ),
+                                           array('saisie' => 'input',
+                                                 'options' => array('nom' => 'objectif_initial',
+                                                                    'label' => _T('souscription:label_objectif_initial'),
+                                                                    'explication' => _T('souscription:explication_campagne_objectif_initial'))
+                                           ),
+                                           array('saisie' => 'oui_non',
+                                                 'options' => array('nom' => 'objectif_limiter',
+                                                                    'explication' => _T('souscription:explication_campagne_objectif_limite'),
+                                                                    'label' => _T('souscription:label_objectif_limite')))
+                                           ),
+                        ),
+                  array('saisie' => 'textarea',
+                        'options' => array('nom' => 'texte',
+                                           'label' => _T('souscription:label_description'),
+                                           'inserer_barre' => 'edition',
+                                           'rows' => '10'))
+                  );
+
+  $valeurs['_saisies'] = $saisies;
+
+  return $valeurs;
 }
 
 function formulaires_editer_souscription_campagne_verifier_dist($id_souscription_campagne='new',
@@ -48,7 +106,7 @@ function formulaires_editer_souscription_campagne_verifier_dist($id_souscription
                                                                 $row=array(),
                                                                 $hidden='')
 {
-  
+
   $ret = formulaires_editer_objet_verifier('souscription_campagne',
                                            $id_souscription_campagne,
                                            array('titre',
@@ -57,15 +115,32 @@ function formulaires_editer_souscription_campagne_verifier_dist($id_souscription
 
   $type = _request("type_objectif");
   if(!in_array($type, array('don', 'adhesion')))
-     $ret['type_objectif'] = "Type d'objectif invalide";
+    $ret['type_objectif'] = _T("souscription:message_nok_objectif_invalide");
+
+  /* Si un objectif est demandé, alors on vérifie que les champs sont
+   * bien des entiers. */
+  if(_request('objectif_oui_non') == 'on') {
+    $objectif = _request('objectif');
+    if(!ctype_digit($objectif) || intval($objectif) < 0)
+      $ret['objectif'] = _T("souscription:message_nok_objectif_invalide");
 
-  $objectif_initial = _request('objectif_initial');
-  if(!ctype_digit($objectif_initial) || intval($objectif_initial) < 0)
-    $ret['objectif_initial'] = "Valeur de l'objectif initial invalide";
+    $objectif_initial = _request('objectif_initial');
+    if($objectif_initial != '') {
+      if(!ctype_digit($objectif_initial) || intval($objectif_initial < 0))
+       $ret['objectif_initial'] = _T("souscription:message_nok_objectif_initial_valeur");
+      elseif(intval($objectif_initial) > $objectif)
+       $ret['objectif_initial'] = _T("souscription:message_nok_objectif_initial_supperieur_objectif");
+    }
+  }
 
-  $objectif = _request('objectif');
-  if(!ctype_digit($objectif) || intval($objectif) < 0)
-    $ret['objectif'] = "Valeur de l'objectif initial invalide";
+  /* Si une limite est demandée, alors, on vérifie que le champs est
+   * bien un entier. */
+  $limite_oui_non = _request('limite_oui_non');
+  if($limite_oui_non == "on") {
+    $limite = _request('limite');
+    if(!ctype_digit($objectif))
+      $ret['limite'] = _T("souscription:message_nok_limite_valeur");
+  }
 
   return $ret;
 }
@@ -77,6 +152,13 @@ function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_
                                                                $row=array(),
                                                                $hidden='')
 {
+  /* Si un objectif n'est pas demandée, alors, on remplace la valeur
+   * fournie (quelqu'elle soit, par 0) */
+  if(_request('objectif_oui_non') != "on") {
+    set_request('objectif', 0);
+    set_request('objectif_initial', 0);
+    set_request('objectif_limiter', '');
+  }
 
   $res = formulaires_editer_objet_traiter('souscription_campagne',
                                           $id_souscription_campagne,
@@ -87,18 +169,5 @@ function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_
                                           $row,
                                           $hidden);
 
-  /* // Un lien a prendre en compte ? */
-  /* if ($associer_objet AND $id_souscription_campagne = $res['id_souscription_campagne']) { */
-  /*   list($objet, $id_objet) = explode('|', $associer_objet); */
-    
-  /*   if ($objet AND $id_objet AND autoriser('modifier', $objet, $id_objet)) { */
-  /*     include_spip('action/editer_liens'); */
-  /*     objet_associer(array('souscription_campagne' => $id_souscription_campagne), array($objet => $id_objet)); */
-  /*     if (isset($res['redirect'])) { */
-  /*       $res['redirect'] = parametre_url ($res['redirect'], "id_lien_ajoute", $id_souscription_campagne, '&'); */
-  /*     } */
-  /*   } */
-  /* } */
-
   return $res;
 }