[SPIP] ~v3.0.20-->v3.0.25
[lhc/web/clavette_www.git] / www / squelettes-dist / formulaires / inscription.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2016 *
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
13 if (!defined('_ECRIRE_INC_VERSION')) return;
14
15 function 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 // pas de formulaire si le mode est interdit
20 include_spip('inc/autoriser');
21 if (!autoriser('inscrireauteur', $mode, $id))
22 return false;
23
24 // pas de formulaire si on a déjà une session avec un statut égal ou meilleur au mode
25 if(isset($visiteur_session['statut']) && ($visiteur_session['statut'] <= $mode))
26 return false;
27
28 $valeurs = array('nom_inscription'=>'','mail_inscription'=>'', 'id'=>$id, '_mode'=>$mode);
29
30 return $valeurs;
31 }
32
33 // Si inscriptions pas autorisees, retourner une chaine d'avertissement
34 function formulaires_inscription_verifier_dist($mode='', $id=0) {
35
36 include_spip('inc/filtres');
37 $erreurs = array();
38
39 include_spip('inc/autoriser');
40 if (!autoriser('inscrireauteur', $mode, $id)
41 OR (strlen(_request('nobot'))>0))
42 $erreurs['message_erreur'] = _T('pass_rien_a_faire_ici');
43
44 if (!$nom = _request('nom_inscription'))
45 $erreurs['nom_inscription'] = _T("info_obligatoire");
46 elseif (!nom_acceptable(_request('nom_inscription')))
47 $erreurs['nom_inscription'] = _T("ecrire:info_nom_pas_conforme");
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
81 function formulaires_inscription_traiter_dist($mode='', $id=0) {
82
83 include_spip('inc/filtres');
84 include_spip('inc/autoriser');
85 if (!autoriser('inscrireauteur', $mode, $id))
86 $desc = "rien a faire ici";
87 else {
88 $nom = _request('nom_inscription');
89 $mail_complet = _request('mail_inscription');
90
91 $inscrire_auteur = charger_fonction('inscrire_auteur','action');
92 $desc = $inscrire_auteur($mode, $mail_complet, $nom, array('id'=>$id));
93 }
94
95 // erreur ?
96 if (is_string($desc)){
97 return array('message_erreur'=> $desc);
98 }
99 // OK
100 else
101 return array('message_ok' => _T('form_forum_identifiant_mail'), 'id_auteur' => $desc['id_auteur']);
102 }
103
104
105 ?>