diff --git a/squelettes-dist/formulaires/inscription.php b/squelettes-dist/formulaires/inscription.php index 8220e1db7455726ef60a87841c78ec6d8e73f404..bdbd879e683fbcf5f630f4d87a2a6c7fe50bb8bc 100644 --- a/squelettes-dist/formulaires/inscription.php +++ b/squelettes-dist/formulaires/inscription.php @@ -30,22 +30,13 @@ function formulaires_inscription_verifier_dist($mode, $focus, $id=0) { $erreurs = array(); include_spip('inc/filtres'); - if (!tester_config($id, $mode)) + if (!tester_config($id, $mode) OR (strlen(_request('nobot'))>0)) $erreurs['message_erreur'] = _T('rien_a_faire_ici'); if (!$nom = _request('nom_inscription')) $erreurs['nom_inscription'] = _T("info_obligatoire"); - else { - $nom = trim(corriger_caracteres($nom)); - if((strlen ($nom) < _LOGIN_TROP_COURT) OR (strlen($nom) > 64) OR (strlen(_request('nobot'))>0)) - $erreurs['nom_inscription'] = _T('info_login_trop_court'); - } - if (!$mail = _request('mail_inscription')) $erreurs['mail_inscription'] = _T("info_obligatoire"); - elseif(!email_valide($mail)){ - $erreurs['mail_inscription'] = _T("form_prop_indiquer_email"); - } // compatibilite avec anciennes fonction surchargeables // plus de definition par defaut @@ -55,9 +46,11 @@ function formulaires_inscription_verifier_dist($mode, $focus, $id=0) { else $f = 'test_inscription_dist'; $declaration = $f($mode, $mail, $nom, $id); - if (is_string($declaration)) - $erreurs['mail_inscription'] = $declaration; - else { + if (is_string($declaration)) { + $k = (strpos($declaration, 'mail') !== false) ? + 'mail_inscription' : 'nom_inscription'; + $erreurs[$k] = _T($declaration); + } else { include_spip('base/abstract_sql'); if ($row = sql_fetsel("statut, id_auteur, login, email", "spip_auteurs", "email=" . sql_quote($declaration['email']))){ @@ -90,7 +83,7 @@ function formulaires_inscription_traiter_dist($mode, $focus, $id=0) { $row = sql_fetsel("statut, id_auteur, login, email", "spip_auteurs", "email=" . sql_quote($mail)); // s'il n'existe pas deja, creer les identifiants $desc = $row ? $row : inscription_nouveau($desc); - } + } else $desc = _T($desc); if (is_array($desc)) { // generer le mot de passe (ou le refaire si compte inutilise) $desc['pass'] = creer_pass_pour_auteur($desc['id_auteur']); @@ -110,24 +103,25 @@ function formulaires_inscription_traiter_dist($mode, $focus, $id=0) { // fonction qu'on peut redefinir pour filtrer les adresses mail et les noms, // et donner des infos supplementaires // Std: controler que le nom (qui sert a calculer le login) est plausible -// et que l'adresse est valide (et on la normalise) -// Retour: une chaine message d'erreur -// ou un tableau avec au minimum email, nom, mode (redac / forum) +// et que l'adresse est valide. On les normalise au passage (trim etc). +// Retour: +// - si ok un tableau avec au minimum email, nom, mode (redac / forum) +// - si ko une chaine de langue servant d'argument a _T expliquant le refus // http://doc.spip.org/@test_inscription_dist function test_inscription_dist($mode, $mail, $nom, $id=0) { include_spip('inc/filtres'); $nom = trim(corriger_caracteres($nom)); - if (!$nom || strlen($nom) > 64) - return _T('ecrire:info_login_trop_court'); - if (!$r = email_valide($mail)) return _T('info_email_invalide'); + if((strlen ($nom) < _LOGIN_TROP_COURT) OR (strlen($nom) > 64)) + return 'ecrire:info_login_trop_court'; + if (!$r = email_valide($mail)) return 'info_email_invalide'; return array('email' => $r, 'nom' => $nom, 'bio' => $mode); } // On enregistre le demandeur comme 'nouveau', en memorisant le statut final // provisoirement dans le champ Bio, afin de ne pas visualiser les inactifs -// A sa premiere connexion il obtiendra son statut final (auth->activer()) +// A sa premiere connexion il obtiendra son statut final. // http://doc.spip.org/@inscription_nouveau function inscription_nouveau($desc) @@ -155,20 +149,23 @@ function envoyer_inscription_dist($desc, $nom, $mode, $id) { $nom_site_spip = nettoyer_titre_email($GLOBALS['meta']["nom_site"]); $adresse_site = $GLOBALS['meta']["adresse_site"]; - - $message = _T('form_forum_message_auto')."\n\n" - . _T('form_forum_bonjour', array('nom'=>$nom))."\n\n" - . _T((($mode == 'forum') ? - 'form_forum_voici1' : - 'form_forum_voici2'), - array('nom_site_spip' => $nom_site_spip, - 'adresse_site' => $adresse_site . '/', - 'adresse_login' => $adresse_site .'/'. _DIR_RESTREINT_ABS)) - . "\n\n- "._T('form_forum_login')." " . $desc['login'] - . "\n- ". _T('form_forum_pass'). " " . $desc['pass'] . "\n\n"; - - return array("[$nom_site_spip] "._T('form_forum_identifiants'), - $message); + if ($mode == '6forum') { + $adresse_login = generer_url_public('login'); + $msg = 'form_forum_voici1'; + } else { + $adresse_login = $adresse_site .'/'. _DIR_RESTREINT_ABS; + $msg = 'form_forum_voici2'; + } + + $msg = _T('form_forum_message_auto')."\n\n" + . _T('form_forum_bonjour', array('nom'=>$nom))."\n\n" + . _T($msg, array('nom_site_spip' => $nom_site_spip, + 'adresse_site' => $adresse_site . '/', + 'adresse_login' => $adresse_login)) . "\n\n- " + . _T('form_forum_login')." " . $desc['login'] . "\n- " + . _T('form_forum_pass'). " " . $desc['pass'] . "\n\n"; + + return array("[$nom_site_spip] "._T('form_forum_identifiants'), $msg); } // http://doc.spip.org/@test_login