Fix: Fonction de conversion des accents plus propre

This commit is contained in:
Laurent Destailleur 2007-11-29 01:19:23 +00:00
parent 802c37c75c
commit 017a7fabcd
2 changed files with 366 additions and 342 deletions

File diff suppressed because it is too large Load Diff

View File

@ -20,30 +20,32 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* *
* $Id$ * $Id$
* $Source$
*/ */
/** /**
\file htdocs/user/modules/login.anakin.class.php \file htdocs/user/modules/login.anakin.class.php
\brief Fichier de la classe de génération de login anakin \brief Fichier de la classe de generation de login anakin
\author Rodolphe Qiedeville \author Rodolphe Qiedeville
\version $Revision$ \version $Revision$
*/ */
/** /**
\class LoginAnakin \class LoginAnakin
\brief Classe permettant la génération de login anakin \brief Classe permettant la generation de login anakin
*/ */
class LoginAnakin class LoginAnakin
{ {
var $error;
var $db; var $db;
var $user; var $user;
var $login;
/** /**
* \brief Constructeur de la classe * \brief Constructeur de la classe
* \param $DB Handler accès base de données * \param $DB Handler acces base de donnees
* \param $user Objet de l'utilisateur * \param $user Objet de l'utilisateur
*/ */
function LoginAnakin($DB, $user) function LoginAnakin($DB, $user)
@ -55,6 +57,36 @@ class LoginAnakin
} }
/**
* \brief Verifie la disponibilite du login
* \return 1 si le login n'existe pas dans la base, 1 sinon
*/
function dispo()
{
$sql = "SELECT login FROM ".MAIN_DB_PREFIX."user WHERE login ='".$this->login."';";
$resql=$this->db->query($sql);
if ($resql)
{
$num = $this->db->num_rows($resql);
}
if ($num == 0)
{
return 1;
}
else
{
return 0;
}
}
/**
* \brief Genere un login depuis nom
* Ce login est stocke dans ->login
*/
function generate_login() function generate_login()
{ {
$ok = 0; $ok = 0;
@ -80,50 +112,23 @@ class LoginAnakin
} }
return 0; return 0;
}
/**
* \brief Vérifie la disponibilité du login
* \return 1 si le login n'existe pas dans la base, 1 sinon
*/
function dispo()
{
$sql = "SELECT login FROM ".MAIN_DB_PREFIX."user WHERE login ='".$this->login."';";
$resql=$this->db->query($sql);
if ($resql)
{
$num = $this->db->num_rows($resql);
}
if ($num == 0)
{
return 1;
}
else
{
return 0;
}
} }
// Règle primaire // Regle primaire
// 8 premières lettre désaccentuées du nom en minuscule // 8 premieres lettre desaccentuees du nom en minuscule
function generate_login_1() function generate_login_1()
{ {
$nom = unaccent(strtolower($this->user->nom)); $nom = strtolower(unaccent_isostring(sanitize_string($this->user->nom)));
$this->login = substr($nom, 0, 8); $this->login = substr($nom, 0, 8);
} }
// Règle de défaut // Regle de defaut
function generate_login_else() function generate_login_else()
{ {
$login = unaccent(strtolower($this->user->nom)); $login = strtolower(unaccent_isostring(sanitize_string($this->user->nom)));
$le = strlen($this->else_step); $le = strlen($this->else_step);
@ -131,22 +136,22 @@ class LoginAnakin
} }
// Règles annexes // Regles annexes
// première lettre du prénom + 7 premières lettres du nom, désaccentuées en minuscule // premiere lettre du prenom + 7 premieres lettres du nom, desaccentuees en minuscule
function generate_login_2() function generate_login_2()
{ {
$nom = unaccent(strtolower($this->user->nom)); $nom = strtolower(unaccent_isostring(sanitize_string($this->user->nom)));
$prenom = unaccent(strtolower($this->user->prenom)); $prenom = strtolower(unaccent_isostring(sanitize_string($this->user->prenom)));
$this->login = substr($prenom, 0, 1) . substr($nom, 0, 7); $this->login = substr($prenom, 0, 1) . substr($nom, 0, 7);
} }
// 2 premières lettres du prénom + 6 premières lettres du nom, désaccentuées en minuscule // 2 premieres lettres du prenom + 6 premieres lettres du nom, desaccentuees en minuscule
function generate_login_3() function generate_login_3()
{ {
$nom = unaccent(strtolower($this->user->nom)); $nom = strtolower(unaccent_isostring(sanitize_string($this->user->nom)));
$prenom = unaccent(strtolower($this->user->prenom)); $prenom = strtolower(unaccent_isostring(sanitize_string($this->user->prenom)));
$this->login = substr($prenom, 0, 2) . substr($nom, 0, 6); $this->login = substr($prenom, 0, 2) . substr($nom, 0, 6);
} }