Skip to content
Extraits de code Groupes Projets
Valider a9c10fdd rédigé par esj's avatar esj
Parcourir les fichiers

envoi du mail d'inscription par une fonction, pour réutilisation

parent 648017b7
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -21,78 +21,74 @@ function balise_FORMULAIRE_INSCRIPTION_dyn($mode, $focus) { ...@@ -21,78 +21,74 @@ function balise_FORMULAIRE_INSCRIPTION_dyn($mode, $focus) {
// Si une inscription est autorisee, on enregistre le demandeur // Si une inscription est autorisee, on enregistre le demandeur
// comme 'nouveau' et on lui envoie ses codes par email ; lors de // comme 'nouveau' et on lui envoie ses codes par email ; lors de
// sa premiere connexion il obtiendra son statut final (auth->activer()) // sa premiere connexion il obtiendra son statut final (auth->activer())
if (($mode == 'redac' AND lire_meta('accepter_inscriptions') == 'oui') if (!(($mode == 'redac' AND lire_meta('accepter_inscriptions') == 'oui')
OR ($mode == 'forum' AND ( OR ($mode == 'forum' AND (
lire_meta('accepter_visiteurs') == 'oui' lire_meta('accepter_visiteurs') == 'oui'
OR lire_meta('forums_publics') == 'abo' OR lire_meta('forums_publics') == 'abo'
) )
)) )))
$statut = 'nouveau';
else
return _T('pass_rien_a_faire_ici'); return _T('pass_rien_a_faire_ici');
// recuperer les donnees envoyees // recuperer les donnees envoyees
$mail_inscription = _request('mail_inscription'); $mail_inscription = _request('mail_inscription');
$nom_inscription = _request('nom_inscription'); $nom_inscription = _request('nom_inscription');
if (test_mail_ins($mode, $mail_inscription) if (!$nom_inscription)
AND _request('nom_inscription')) { $message = '';
// envoyer les identifiants si l'abonne n'existe pas deja. elseif (!test_mail_ins($mode, $mail_inscription))
$s = spip_query("SELECT statut, id_auteur, login, pass $message = _T('info_email_invalide');
FROM spip_auteurs WHERE email='".addslashes($mail_inscription)."'"); else $message = message_inscription($mail_inscription, $nom_inscription, $mode);
if (!$row = spip_fetch_array($s)) {
$login = test_login($nom_inscription, $mail_inscription);
$id_auteur = spip_abstract_insert('spip_auteurs',
'(nom, email, login, statut)',
"('".addslashes($nom_inscription)."',
'".addslashes($mail_inscription)."', '$login', '$statut')");
$pass = creer_pass_pour_auteur($id_auteur);
$message = envoyer_inscription($mail_inscription,
$statut, $mode, $login, $pass, $nom_inscription);
}
else {
// existant mais encore muet, renvoyer les infos
if ($row['statut'] == 'nouveau') {
// recreer le pass
$pass = creer_pass_pour_auteur($row['id_auteur']);
$message = envoyer_inscription(
$mail_inscription, $row['statut'], $mode,
$row['login'], $pass, $nom_inscription);
} else {
// dead
if ($row['statut'] == '5poubelle')
$message = _T('form_forum_access_refuse');
// deja inscrit
else
$message = _T('form_forum_email_deja_enregistre');
}
}
}
// demande du formulaire
else {
if (!$nom_inscription)
$message = '';
else {
spip_log("Mail incorrect: '$mail_inscription'");
$message = _T('info_email_invalide');
}
}
return array("formulaire_inscription", 0, return array("formulaire_inscription", 0,
array('focus' => $focus, array('focus' => $focus,
'target' => _request('target'), 'target' => _request('target'),
'message' => $message, 'message' => $message,
'mode' => $mode)); 'mode' => $mode));
} }
// fonction qu'on peut redefinir pour filtrer selon l'adresse mail // fonction qu'on peut redefinir pour filtrer selon l'adresse mail
// cas general: controler juste que l'adresse n'est pas vide et est valide // cas general: controler juste que l'adresse n'est pas vide et est valide
function test_mail_ins($mode, $mail) { function test_mail_ins($mode, $mail) {
if ($mail = trim($mail)) return ($mail = trim($mail)) AND email_valide($mail);
return email_valide($mail); }
function message_inscription($mail_inscription, $nom_inscription, $mode)
{
// envoyer les identifiants si l'abonne n'existe pas deja.
$row = spip_fetch_array(spip_query("SELECT statut, id_auteur, login
FROM spip_auteurs WHERE email='".addslashes($mail_inscription)."'"));
if (!$row) {
$login = test_login($nom_inscription, $mail_inscription);
$pass = creer_pass_pour_auteur(spip_abstract_insert('spip_auteurs',
'(nom, email, login, statut)',
"('".
addslashes($nom_inscription) .
"',' ".
addslashes($mail_inscription) .
"', '" .
$login .
"', 'nouveau')"));
$message = envoyer_inscription($mail_inscription, 'nouveau', $mode, $login, $pass, $nom_inscription);
} else {
// existant mais encore muet, renvoyer les infos
if ($row['statut'] == 'nouveau') {
// recreer le pass
$pass = creer_pass_pour_auteur($row['id_auteur']);
$message = envoyer_inscription($mail_inscription, $row['statut'], $mode,
$row['login'], $pass, $nom_inscription);
} else {
// dead
if ($row['statut'] == '5poubelle')
$message = _T('form_forum_access_refuse');
else
// deja inscrit
$message = _T('form_forum_email_deja_enregistre');
}
}
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter