source: spip-zone/_core_/plugins/dist/formulaires/inscription.php @ 69184

Last change on this file since 69184 was 69184, checked in by cedric@…, 7 years ago

Report de c68472 : Retours de message du formulaire d'inscription : quand c'est une erreur afficher un message d'erreur. Quand c'est un succes, fournir en retour l'id_auteur inscrit pour les pipelines/plugins

File size: 3.5 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2012                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13if (!defined('_ECRIRE_INC_VERSION')) return;
14
15function formulaires_inscription_charger_dist($mode='', $id=0) {
16        global $visiteur_session;
17       
18        // fournir le mode de la config ou tester si l'argument du formulaire est un mode accepte par celle-ci
19        include_spip('inc/filtres');
20        $mode=tester_config($id, $mode);
21       
22        // pas de formulaire si le mode est interdit
23        if (!$mode)
24                return false;
25
26        // pas de formulaire si on a déjà une session avec un statut égal ou meilleur au mode
27        if(isset($visiteur_session['statut']) && ($visiteur_session['statut'] <= $mode))
28                return false;
29       
30        $valeurs = array('nom_inscription'=>'','mail_inscription'=>'', 'id'=>$id, '_mode'=>$mode);
31       
32        return $valeurs;
33}
34
35// Si inscriptions pas autorisees, retourner une chaine d'avertissement
36function formulaires_inscription_verifier_dist($mode='', $id=0) {
37       
38        include_spip('inc/filtres');
39        $mode=tester_config($id, $mode);
40       
41        $erreurs = array();
42
43        if (!$mode OR (strlen(_request('nobot'))>0))
44                $erreurs['message_erreur'] = _T('pass_rien_a_faire_ici');
45
46        if (!$nom = _request('nom_inscription'))
47                $erreurs['nom_inscription'] = _T("info_obligatoire");
48        if (!$mail = strval(_request('mail_inscription')))
49                $erreurs['mail_inscription'] = _T("info_obligatoire");
50       
51        // compatibilite avec anciennes fonction surchargeables
52        // plus de definition par defaut
53        if (!count($erreurs)){
54                include_spip('action/inscrire_auteur');
55                if (function_exists('test_inscription'))
56                        $f = 'test_inscription';
57                else 
58                        $f = 'test_inscription_dist';
59                $declaration = $f($mode, $mail, $nom, $id);
60                if (is_string($declaration)) {
61                        $k = (strpos($declaration, 'mail')  !== false) ?
62                          'mail_inscription' : 'nom_inscription';
63                        $erreurs[$k] = _T($declaration);
64                } else {
65                        include_spip('base/abstract_sql');
66                       
67                        if ($row = sql_fetsel("statut, id_auteur, login, email", "spip_auteurs", "email=" . sql_quote($declaration['email']))){
68                                if (($row['statut'] == '5poubelle') AND !$declaration['pass'])
69                                        // irrecuperable
70                                        $erreurs['message_erreur'] = _T('form_forum_access_refuse');   
71                                else if (($row['statut'] != 'nouveau') AND !$declaration['pass'])
72                                        // deja inscrit
73                                        $erreurs['message_erreur'] = _T('form_forum_email_deja_enregistre');
74                                spip_log($row['id_auteur'] . " veut se resinscrire");
75                        }
76                }
77        }
78        return $erreurs;
79}
80
81function formulaires_inscription_traiter_dist($mode='', $id=0) {
82       
83        include_spip('inc/filtres');
84        $mode=tester_config($id, $mode);
85               
86        $nom = _request('nom_inscription');
87        $mail_complet = _request('mail_inscription');
88
89        $inscrire_auteur = charger_fonction('inscrire_auteur','action');
90        $desc = $inscrire_auteur($mode, $mail_complet, $nom, array('id'=>$id));
91
92        // erreur ?
93        if (is_string($desc)){
94                return array('message_erreur'=> $desc);
95        }
96        // OK
97        else
98                return array('message_ok' => _T('form_forum_identifiant_mail'), 'id_auteur' => $desc['id_auteur']);
99}
100
101
102?>
Note: See TracBrowser for help on using the repository browser.