source: spip-zone/_plugins_/clients/formulaires/inscription_client.php @ 52037

Last change on this file since 52037 was 52037, checked in by toutati@…, 8 years ago

Une petite compatibilité avec le plugin contacts, en espérant que ça couine pas si la table n'existe pas

File size: 3.7 KB
Line 
1<?php
2
3// Sécurité
4if (!defined('_ECRIRE_INC_VERSION')) return;
5
6include_spip('inc/filtres');
7
8function formulaires_inscription_client_saisies_dist($retour=''){
9        $mode = tester_config(0);
10        return array(
11                array(
12                        'saisie' => 'input',
13                        'options' => array(
14                                'nom' => 'prenom',
15                                'label' => _T('contacts:label_prenom'),
16                                'obligatoire' => 'oui'
17                        )
18                ),
19                array(
20                        'saisie' => 'input',
21                        'options' => array(
22                                'nom' => 'nom',
23                                'label' => _T('contacts:label_nom'),
24                                'obligatoire' => 'oui'
25                        )
26                ),
27                array(
28                        'saisie' => 'input',
29                        'options' => array(
30                                'nom' => 'mail_inscription',
31                                'label' => _T('contacts:label_email'),
32                                'obligatoire' => 'oui'
33                        ),
34                        'verifier' => array(
35                                'type' => 'email'
36                        )
37                ),
38                array(
39                        'saisie' => 'input',
40                        'options' => array(
41                                'nom' => 'voie',
42                                'label' => _T('coordonnees:label_voie'),
43                                'obligatoire' => 'oui'
44                        )
45                ),
46                array(
47                        'saisie' => 'input',
48                        'options' => array(
49                                'nom' => 'complement',
50                                'label' => _T('coordonnees:label_complement'),
51                        )
52                ),
53                array(
54                        'saisie' => 'input',
55                        'options' => array(
56                                'nom' => 'code_postal',
57                                'label' => _T('coordonnees:label_code_postal'),
58                                'obligatoire' => 'oui'
59                        )
60                ),
61                array(
62                        'saisie' => 'input',
63                        'options' => array(
64                                'nom' => 'ville',
65                                'label' => _T('coordonnees:label_ville'),
66                                'obligatoire' => 'oui'
67                        )
68                ),
69                array(
70                        'saisie' => 'pays',
71                        'options' => array(
72                                'nom' => 'pays',
73                                'code_pays' => 'oui',
74                                'label' => _T('coordonnees:label_pays'),
75                                'obligatoire' => 'oui'
76                        )
77                ),
78        );
79}
80
81function formulaires_inscription_client_charger_dist($retour=''){
82        // On récupère le formulaire classique d'inscription
83        $mode = tester_config(0);
84        $inscription_dist = charger_fonction('charger', 'formulaires/inscription');
85        $contexte = $inscription_dist($mode,'');
86       
87        return $contexte;
88}
89
90function formulaires_inscription_client_verifier_dist($retour=''){
91        // On crée un faux positif pour le nom car on le construira nous-même plus tard
92        set_request('nom_inscription', 'glop');
93       
94        // On récupère les erreurs du formulaire d'inscription classique
95        $mode = tester_config(0);
96        $inscription_dist = charger_fonction('verifier', 'formulaires/inscription');
97        $erreurs = $inscription_dist($mode,'');
98       
99        return $erreurs;
100}
101
102function formulaires_inscription_client_traiter_dist($retour=''){
103        // Si redirection demandée, on refuse le traitement en ajax
104        if ($retour) refuser_traiter_formulaire_ajax();
105       
106        // Le pseudo SPIP est construit
107        set_request('nom_inscription', _request('prenom').' '._request('nom'));
108       
109        // On active le traitement du formulaire d'inscription classique, donc on crée un nouvel utilisateur
110        $mode = tester_config(0);
111        $inscription_dist = charger_fonction('traiter', 'formulaires/inscription');
112        $retours = $inscription_dist($mode,'');
113       
114        // On récupère l'auteur qu'on vient de créer avec l'email du form
115        if ($id_auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'email = '.sql_quote(_request('mail_inscription')))){
116                // On ajoute des infos au contexte
117                set_request('objet', 'auteur');
118                set_request('id_objet', $id_auteur);
119                set_request('type', 'principale');
120               
121                // On crée un contact pour cet utilisateur
122                $editer_contact = charger_fonction('editer_contact', 'action/');
123                list($id_contact, $err) = $editer_contact('nouveau');
124                //On lie le contact à l'auteur
125                sql_insertq('spip_contacts_liens',array('id_objet' => $id_auteur,'objet' => 'auteur',"id_contact"=>$id_contact));
126                //assurer la compatibilite
127                sql_updateq('spip_contacts',array('id_auteur' => $id_auteur),"id_contact=".intval($id_contact));
128
129               
130                // On crée l'adresse
131                $editer_adresse = charger_fonction('editer_adresse', 'action/');
132                $editer_adresse('oui');
133        }
134       
135        if ($retour) $retours['redirect'] = $retour;
136       
137        return $retours;
138}
139
140?>
Note: See TracBrowser for help on using the repository browser.