Utilisation de la balise #AVANCEMENT_CAMPAGNE dans les squelettes.
[spip_souscriptions.git] / action / editer_souscription.php
1 <?php
2 if (!defined("_ECRIRE_INC_VERSION")) return;
3
4 function action_editer_souscription_dist($arg=null) {
5
6   if (is_null($arg)) {
7     $securiser_action = charger_fonction('securiser_action', 'inc');
8     $arg = $securiser_action();
9   }
10
11   if (!$id_souscription = intval($arg)) {
12     $id_souscription = souscription_inserer();
13   }
14
15   if (!$id_souscription)
16     return array(0, '');
17
18   $err = souscription_modifier($id_souscription);
19
20   return array($id_souscription, $err);
21 }
22
23 /**
24  * Inserer une nouvelle souscription en en base.
25  *
26  * @return bool
27  */
28 function souscription_inserer() {
29
30   $champs = array('date_souscription' => date('Y-m-d H:i:s'));
31
32   // Envoyer aux plugins
33   $champs = pipeline('pre_insertion',
34                      array('args' => array('table' => 'spip_souscriptions'),
35                            'data' => $champs)
36                      );
37
38   $id_souscription = sql_insertq("spip_souscriptions", $champs);
39
40   pipeline('post_insertion',
41            array('args' => array('table' => 'spip_souscriptions',
42                                  'id_objet' => $id_souscription),
43                  'data' => $champs)
44            );
45
46   return $id_souscription;
47 }
48
49 /**
50  * Modifier une souscription
51  *
52  * $c est un contenu (par defaut on prend le contenu via _request())
53  *
54  * @param int $id_souscription
55  * @param array|bool $set
56  * @return string
57  */
58 function souscription_modifier($id_souscription, $set=false) {
59   include_spip('inc/modifier');
60
61   $c = collecter_requests(
62                           // white list
63                           array('courriel',
64                                 'recu_fiscal',
65                                 'envoyer_info',
66                                 'informer_comite_local',
67                                 'prenom',
68                                 'nom',
69                                 'adresse',
70                                 'code_postal',
71                                 'ville',
72                                 'telephone',
73                                 'id_souscription_campagne',
74                                 'type_souscription'),
75                           // black list
76                           array('statut', 'date'),
77                           // donnees eventuellement fournies
78                           $set
79                           );
80
81
82   $inserer_transaction = charger_fonction('inserer_transaction', 'bank');
83   $id_transaction = $inserer_transaction(_request('montant'),
84                                          '', /* montant_ht */
85                                          '', /* id_auteur */
86                                          $id_souscription, /* auteur_id => id_souscription */
87                                          _request('courriel'));
88
89   if(!$id_transaction) {
90     return "Identifiant de transaction introuvable..."; /* FIXME: à rendre traduisible. */
91   }
92
93   /* Récupération du nom du pays */
94   $code_pays = _request('pays');
95   $pays = sql_getfetsel(sql_multi("nom", $GLOBALS['spip_lang']), 'spip_pays', "code='$code_pays'");
96
97   $c = array_merge($c,
98                    array("id_transaction" => $id_transaction,
99                          "pays" => $pays));
100
101   if($err = objet_modifier_champs('souscription', $id_souscription, array(), $c))
102     return $err;
103 }