La redirection vers la page pour payer est en URL relative
[spip_souscriptions.git] / formulaires / souscription_don.php
index ac22b2e..2f50bfa 100644 (file)
@@ -79,6 +79,7 @@ function formulaires_souscription_don_charger_dist($id_souscription_campagne) {
                'code_postal' => '',
                'ville' => '',
                'id_souscription_campagne' => $id_souscription_campagne,
+               'type_souscription' => "don",
                );
 }
 
@@ -106,6 +107,8 @@ function formulaires_souscription_don_charger_dist($id_souscription_campagne) {
  */
 function formulaires_souscription_don_verifier_dist($id_souscription_campagne)
 {
+  $campagne = _request('id_souscription_campagne');
+
   $erreurs = formulaires_editer_objet_verifier('souscription_don', 'new',
                                                array('courriel',
                                                      'montant',
@@ -123,8 +126,22 @@ function formulaires_souscription_don_verifier_dist($id_souscription_campagne)
     }
   }
 
-  if(intval($id_souscription_campagne) != intval(_request('id_souscription_campagne')))
-    $erreurs['message_erreur'] = "Campagne invalide";
+  if(!$id_souscription_campagne || intval($id_souscription_campagne) != intval($campagne)) {
+      $erreurs['message_erreur'] = "Campagne invalide";
+  }
+    
+  /* La campagne doit être valide (définie dans la base) et doit
+   * accepter les dons. */
+  $type = sql_getfetsel("type_objectif",
+                        "spip_souscription_campagnes",
+                        "id_souscription_campagne=$id_souscription_campagne");
+
+  if(!$type || $type != "don")
+    $erreurs['message_erreur'] = "Type de souscription invalide";
+
+  /* Le champ 'type' (hidden) doit être « don » */
+  if(_request('type_souscription') != "don")
+    $erreurs['message_erreur'] = "Type de souscription invalide: " . _request('type_souscription');
 
   if ($e = _request('courriel') AND !email_valide($e))
     $erreurs['courriel'] = _T('form_prop_indiquer_email');
@@ -187,31 +204,12 @@ function formulaires_souscription_don_traiter_dist($id_souscription_campagne)
   else {
     $hash = $row['transaction_hash'];
     $id_transaction = $row['id_transaction'];
-    $redirect = generer_url_public("payer", "id_transaction=$id_transaction&transaction_hash=$hash");
+    $redirect = generer_url_public("payer", "id_transaction=$id_transaction&transaction_hash=$hash", false, false);
     $ret['redirect'] = $redirect;
   }
 
   return $ret;
 }
-    
-/*   /\* return array('message_ok' => "Transaction $id_transaction cree", *\/ */
-/*   /\*              'editable' => true, *\/ */
-/*   /\*              'redirect' => $redirect); *\/ */
-
-/*   return formulaires_editer_objet_traiter('souscription_don', */
-/*                                           $id_souscription_don, */
-/*                                           '', */
-/*                                           $lier_trad, */
-/*                                           $redirect, */
-/*                                           $config_fonc, */
-/*                                           $row), */
-/*                                           $hidden); */
-/* } */
-/* else { */
-/*   return array('message_erreur' => "Echec creation de la transaction", */
-/*                'editable' => true); */
-/* } */
-
 
 function verifier_campagne($id_souscription_campagne) {
   /* FIXME: vérifier que la campagne a bien le bon statut (ouverte, fermée, terminée, etc.) */
@@ -219,7 +217,7 @@ function verifier_campagne($id_souscription_campagne) {
   /* Vérification de l'existance de la *campagne*, de son *statut* et de la *concordance du type* */
   if(intval($id_souscription_campagne)
      AND $t = sql_getfetsel('type_objectif', 'spip_souscription_campagnes', 'id_souscription_campagne='.intval($id_souscription_campagne))
-     AND $t == 'souscriptiondon')
+     AND $t == 'don')
     {
       return true;
     }