526,5 → 526,41 |
$contenu = preg_replace("/;*\s*\?>/", "; ?>", $contenu); |
return $contenu; |
} |
|
/** |
* Crée un nom Wiki (de la forme "JeanTalus") à partir des données de l'utilisateur; |
* gère l'utilisation du pseudo mais pas la collision de noms Wiki @TODO s'en occuper |
* |
* @param array $infos des infos de profil utilisateur - on admet qu'elles contiennent "intitule" |
* @return string un nom wiki correspondant à l' "intitulé" de l'utilisateur (prénom-nom ou pseudo) |
* ou la valeur par défaut de $defaut si celui-ci est fourni et si le nom Wiki n'a pu être construit |
*/ |
public function formaterNomWiki($intitule, $defaut="ProblemeNomWiki") { |
$nw = $this->convertirEnCamelCase($intitule); |
// on sait jamais |
if ($nw == "") { |
$nw = $defaut; |
} |
|
return $nw; |
} |
|
protected function convertirEnCamelCase($str) { |
// Suppression des accents |
$str = $this->supprimerAccents($str); |
// Suppression des caractères non alphanumériques |
$str = preg_replace('/[^\da-z]/i', '', ucwords(strtolower($str))); |
return $str; |
} |
|
protected function supprimerAccents($str, $charset='utf-8') { |
$str = htmlentities($str, ENT_NOQUOTES, $charset); |
|
$str = preg_replace('#&([A-za-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str); |
$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. 'œ' |
$str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères |
|
return $str; |
} |
} |
?> |