source: trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/balise/formulaire_modif_abonnement.php @ 90

Last change on this file since 90 was 90, checked in by guille, 15 years ago

importacion de spip-listes-1_9_2

File size: 5.6 KB
Line 
1<?php
2
3
4if (!defined("_ECRIRE_INC_VERSION")) return;    #securite
5
6function balise_FORMULAIRE_MODIF_ABONNEMENT ($p) {
7
8        return calculer_balise_dynamique($p, 'FORMULAIRE_MODIF_ABONNEMENT', array());
9}
10
11function balise_FORMULAIRE_MODIF_ABONNEMENT_stat ($args, $filtres) {
12       
13        if(!$args[0]) $args[0]='formulaire_modif_abonnement';
14        return array($args[0]);
15}
16
17
18
19function balise_FORMULAIRE_MODIF_ABONNEMENT_dyn($formulaire) {
20
21include_spip ("inc/meta");
22include_spip ("inc/session");
23include_spip ("inc/filtres");
24include_spip ("inc/texte");
25include_spip ("inc/meta");
26include_spip ("inc/mail");
27include_spip ("inc/acces");
28include_spip ("inc/spiplistes_api");
29
30
31        global $confirm,$d,$list,$champs_extra,$email_desabo;
32
33       
34        //utiliser_langue_site();
35        $nomsite=extraire_multi(lire_meta("nom_site"));
36        $urlsite=extraire_multi(lire_meta("adresse_site"));
37       
38        // aller chercher le formulaire html qui va bien                               
39$formulaire = "formulaires/formulaire_modif_abonnement";       
40       
41        // 3 Cas :
42        // 1) La personne valide le formulaire de modif, traitement des données
43        // 2) Recuperer le cookie de relance désabonnement / afficher le forumlaire de modif
44        // 3) Envoyer par mail le cookie de relance modif abonnement
45        //presentation
46       
47       
48         // La personne valide le formulaire
49       
50         // revoir le test ?
51        if($confirm == 'oui'){
52                $res = spip_query("SELECT * FROM spip_auteurs WHERE cookie_oubli="._q($d)." AND statut<>'5poubelle' AND pass<>''");
53          if ($row = spip_fetch_array($res)) {
54                        $id_auteur = $row['id_auteur'];
55                        $statut = $row['statut'];
56                        $nom = $row['nom'];
57                        $mail_abo = $row['email'];
58       
59                // abonnement aux listes
60                        // selectionne les listes publiques et desabonne l'auteur
61                         spiplistes_desabonner($id_auteur);
62       
63                        if(is_array($list)){   
64                        // on abonne l'auteur aux listes choisies
65                                while( list(,$val) = each($list) ){
66                         $result=spip_query("INSERT INTO spip_auteurs_listes (id_auteur,id_liste) VALUES ("._q($id_auteur).","._q($val).")");
67                               
68                                }
69                        } 
70                       
71                        // maj du format de reception
72                    $type_abo = _request('suppl_abo'); 
73                    spip_query("UPDATE `spip_auteurs_elargis` SET `spip_listes_format`="._q($type_abo)." WHERE `id_auteur` ="._q($id_auteur)); 
74               
75                        // detruire le cookie perso
76                        spip_query("UPDATE spip_auteurs SET cookie_oubli = '0' WHERE cookie_oubli ="._q($d));
77               
78                   // affichage des modifs
79                $ab_o = spip_fetch_array(spip_query("SELECT `spip_listes_format` FROM `spip_auteurs_elargis` WHERE `id_auteur`="._q($id_auteur))) ;
80                $abo = $ab_o["spip_listes_format"];
81       
82                If ($abo == 'non')  {
83                        $msg_formulaire = "<h4>"._T('spiplistes:desabonnement_valid').":</h4>&nbsp;".$mail_abo; 
84                        //peut etre qu'une liste est cochee
85                        spiplistes_desabonner($id_auteur);
86                  }
87                else {
88                        $msg_formulaire = "<h4>"._T('spiplistes:abonnement_modifie')."</h4>" ;
89                        $confirm_formulaire = "<p>"._T('spiplistes:abonnement_nouveau_format').$abo."<br />";
90                }
91       
92       
93          } else  {
94                        $msg_formulaire = _T('pass_erreur_code_inconnu');
95          }
96         
97          return array($formulaire, $GLOBALS['delais'],
98                        array(
99                                'message_formulaire' => $msg_formulaire,
100                                'id_auteur' => $id_auteur,
101                                'confirm_formulaire' => $confirm_formulaire,
102                                'formulaire_affiche' => '',
103                                'formulaire_cookie_affiche' => '',
104                                'modif_affiche' => '1'
105                                        )
106                        );
107        }
108       
109        // recuperer le cookie de relance désabonnement, et afficher le formulaire de modif
110        if ($d  AND ($confirm != 'oui')) {
111       
112                $res = spip_query ("SELECT * FROM spip_auteurs WHERE cookie_oubli="._q($d)." AND statut<>'5poubelle' AND pass<>''");
113                if ($row = spip_fetch_array($res)) {
114                        $formulaire_affiche = '1';
115                $id_auteur = $row['id_auteur'];
116               
117                $abo = spip_fetch_array(spip_query("SELECT `spip_listes_format` FROM `spip_auteurs_elargis` WHERE `id_auteur`=$id_auteur")) ;           
118                //var_dump($abo);die("coucou");
119                $format = $abo["spip_listes_format"];
120                }
121                else
122                {
123                $formulaire_affiche = '';
124                                $msg_formulaire = _T('pass_erreur_code_inconnu');
125          }
126         
127          return array($formulaire, $GLOBALS['delais'],
128                        array(
129                                'message_formulaire' => $msg_formulaire,
130                                'id_auteur' => $id_auteur,
131                                'confirm_formulaire' => $confirm_formulaire,
132                                'formulaire_affiche' => $formulaire_affiche,
133                                'formulaire_cookie_affiche' => '',
134                                'd' => $d,
135                                'format' => $format
136                                        )
137                        );
138                       
139        }  else {
140       
141        // envoyer le cookie de relance modif abonnement
142        if ($email_desabo) {
143                if (email_valide($email_desabo)) {
144                        $res = spip_query("SELECT * FROM spip_auteurs WHERE email ="._q($email_desabo));
145                        if ($row = spip_fetch_array($res)) {
146                                if ($row['statut'] == '5poubelle')
147                                        $erreur = _T('pass_erreur_acces_refuse');
148                                else {
149                                        $cookie = creer_uniqid();
150                                        spip_query("UPDATE spip_auteurs SET cookie_oubli = "._q($cookie)." WHERE email ="._q($email_desabo));
151                                        $message = _T('spiplistes:abonnement_mail_passcookie', array('nom_site_spip' => $nomsite, 'adresse_site' => $urlsite, 'cookie' => $cookie));
152                                       
153                                        if (envoyer_mail($email_desabo, "[$nomsite] "._T('spiplistes:abonnement_titre_mail'), $message))
154                                                $erreur = _T('spiplistes:pass_recevoir_mail');
155                                        else
156                                                $erreur = _T('pass_erreur_probleme_technique');
157                                }
158                        }
159                        else
160                                $erreur = _T('pass_erreur_non_enregistre', array('email_oubli' => htmlspecialchars($email_desabo)));
161                }
162                else
163                        $erreur = _T('spiplistes:erreur_adresse');
164
165        }
166       
167        if($confirm != 'oui'){
168          $formulaire_cookie = '1';     
169        }
170        }
171       
172        return array($formulaire, $GLOBALS['delais'],
173                        array(
174                                'message_formulaire' => $msg_formulaire,
175                                'id_auteur' => '',
176                                'confirm_formulaire' => $confirm_formulaire,
177                                'formulaire_affiche' => '',
178                                'formulaire_cookie_affiche' => $formulaire_cookie,
179                                'erreur' => $erreur
180                                        )
181                        );
182
183}
184
185?>
Note: See TracBrowser for help on using the repository browser.