84,42 → 84,6 |
} |
|
/** |
* 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($infos, $defaut="ProblemeNomWiki") { |
$nw = $this->convertirEnCamelCase($infos['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; |
} |
|
/** |
* Permet d'obtenir des infos pour un ou plusieurs ids utilisateurs indiqué(s) dans la ressource. |
* RESSOURCE : /infos-par-ids/#id[,#id]* |
* PARAMÈTRES : forceArrayOfArrays - si true, retourne un tableau associatif même s'il n'y a qu'un |
155,6 → 119,18 |
return $infos; |
} |
|
// proxy pour AnnuaireModele::obtenirIdParMail() car le présent service |
// est utilisé comme une lib => c'est MAL ! @TODO séparer lib et service !! |
public function getIdParCourriel($courriel) { |
return $this->getAnnuaire()->obtenirIdParMail($this->idAnnuaire, $courriel); |
} |
|
// proxy pour AnnuaireModele::inscrireUtilisateurCommeUnGrosPorc() car le présent service |
// est utilisé comme une lib => c'est MAL ! @TODO séparer lib et service !! |
public function inscrireUtilisateurCommeUnGrosPorc($donnees) { |
return $this->getAnnuaire()->inscrireUtilisateurCommeUnGrosPorc($donnees); |
} |
|
/** |
* Méthode rétrocompatible : appelle getInfosParIds et s'il n'y a qu'un résultat, |
* ne retourne pas un tableau associatif mais un tableau simple |
198,7 → 174,7 |
$utilisateur['pseudo'] = $this->obtenirPseudo($id); |
$utilisateur['pseudoUtilise'] = $this->obtenirPseudoUtilise($id); |
$utilisateur['intitule'] = $this->formaterIntitule($utilisateur); |
$utilisateur['nomWiki'] = $this->formaterNomWiki($utilisateur); |
$utilisateur['nomWiki'] = $this->formaterNomWiki($utilisateur['intitule']); |
$courriel = strtolower($courriel); |
$infos_utilisateurs[$courriel] = $utilisateur; |
} |
435,7 → 411,7 |
$this->messages[] = "Ce type de méthode '$methode_demande' n'est pas disponible pour la requete PUT."; |
} |
} else { |
$this->messages[] = "Ce service n'est pas implémanté."; |
$this->messages[] = "Ce service n'est pas implémenté."; |
} |
|
if (!is_null($infos)) { |