mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
person/Benutzer_model.php: generated alias string is sanitized (special characters, spaces,...)
This commit is contained in:
@@ -59,7 +59,7 @@ class Benutzer_model extends DB_Model
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates alias for a uid
|
||||
* Generates alias for a uid.
|
||||
* @param $uid
|
||||
* @return array the alias
|
||||
*/
|
||||
@@ -73,7 +73,7 @@ class Benutzer_model extends DB_Model
|
||||
if (hasData($nameresult))
|
||||
{
|
||||
$aliasdata = getData($nameresult);
|
||||
$alias = mb_strtolower($aliasdata[0]->vorname).'.'.mb_strtolower($aliasdata[0]->nachname);
|
||||
$alias = $this->_sanitizeAliasName($aliasdata[0]->vorname).'.'.$this->_sanitizeAliasName($aliasdata[0]->nachname);
|
||||
$aliasexists = $this->aliasExists($alias);
|
||||
|
||||
if (hasData($aliasexists) && !getData($aliasexists)[0])
|
||||
@@ -82,4 +82,48 @@ class Benutzer_model extends DB_Model
|
||||
}
|
||||
return success($aliasres);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Sanitizes a string used for alias. Replaces special characters, spaces, upper case.
|
||||
* @param string $str
|
||||
* @return string
|
||||
*/
|
||||
private function _sanitizeAliasName($str)
|
||||
{
|
||||
$enc = 'UTF-8';
|
||||
|
||||
$acentos = array(
|
||||
'A' => '/À|Á|Â|Ã|Å/',
|
||||
'Ae' => '/Ä/',
|
||||
'a' => '/à|á|â|ã|å/',
|
||||
'ae'=> '/ä/',
|
||||
'C' => '/Ç/',
|
||||
'c' => '/ç/',
|
||||
'E' => '/È|É|Ê|Ë/',
|
||||
'e' => '/è|é|ê|ë/',
|
||||
'I' => '/Ì|Í|Î|Ï/',
|
||||
'i' => '/ì|í|î|ï/',
|
||||
'N' => '/Ñ/',
|
||||
'n' => '/ñ/',
|
||||
'O' => '/Ò|Ó|Ô|Õ/',
|
||||
'Oe' => '/Ö/',
|
||||
'o' => '/ò|ó|ô|õ/',
|
||||
'oe' => '/ö/',
|
||||
'U' => '/Ù|Ú|Û/',
|
||||
'Ue' => '/Ü/',
|
||||
'u' => '/ù|ú|û/',
|
||||
'ue' => '/ü/',
|
||||
'Y' => '/Ý/',
|
||||
'y' => '/ý|ÿ/',
|
||||
'a.' => '/ª/',
|
||||
'o.' => '/º/',
|
||||
'ss' => '/ß/',
|
||||
);
|
||||
|
||||
$str = preg_replace($acentos, array_keys($acentos), htmlentities($str,ENT_NOQUOTES, $enc));
|
||||
return mb_strtolower(str_replace(' ','_', $str));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user