| Line 82... |
Line 82... |
| 82 |
$this->envoyerTxt($info);
|
82 |
$this->envoyerTxt($info);
|
| 83 |
}
|
83 |
}
|
| 84 |
}
|
84 |
}
|
| Line 85... |
Line 85... |
| 85 |
|
85 |
|
| 86 |
/**
|
- |
|
| 87 |
* Crée un nom Wiki (de la forme "JeanTalus") à partir des données de l'utilisateur;
|
- |
|
| 88 |
* gère l'utilisation du pseudo mais pas la collision de noms Wiki @TODO s'en occuper
|
- |
|
| 89 |
*
|
- |
|
| 90 |
* @param array $infos des infos de profil utilisateur - on admet qu'elles contiennent "intitule"
|
- |
|
| 91 |
* @return string un nom wiki correspondant à l' "intitulé" de l'utilisateur (prénom-nom ou pseudo)
|
- |
|
| 92 |
* ou la valeur par défaut de $defaut si celui-ci est fourni et si le nom Wiki n'a pu être construit
|
- |
|
| 93 |
*/
|
- |
|
| 94 |
public function formaterNomWiki($infos, $defaut="ProblemeNomWiki") {
|
- |
|
| 95 |
$nw = $this->convertirEnCamelCase($infos['intitule']);
|
- |
|
| 96 |
// on sait jamais
|
- |
|
| 97 |
if ($nw == "") {
|
- |
|
| 98 |
$nw = $defaut;
|
- |
|
| 99 |
}
|
- |
|
| 100 |
|
- |
|
| 101 |
return $nw;
|
- |
|
| 102 |
}
|
- |
|
| 103 |
|
- |
|
| 104 |
protected function convertirEnCamelCase($str) {
|
- |
|
| 105 |
// Suppression des accents
|
- |
|
| 106 |
$str = $this->supprimerAccents($str);
|
- |
|
| 107 |
// Suppression des caractères non alphanumériques
|
- |
|
| 108 |
$str = preg_replace('/[^\da-z]/i', '', ucwords(strtolower($str)));
|
- |
|
| 109 |
return $str;
|
- |
|
| 110 |
}
|
- |
|
| 111 |
|
- |
|
| 112 |
protected function supprimerAccents($str, $charset='utf-8') {
|
- |
|
| 113 |
$str = htmlentities($str, ENT_NOQUOTES, $charset);
|
- |
|
| 114 |
|
- |
|
| 115 |
$str = preg_replace('#&([A-za-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str);
|
- |
|
| 116 |
$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. 'œ'
|
- |
|
| 117 |
$str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères
|
- |
|
| 118 |
|
- |
|
| 119 |
return $str;
|
- |
|
| 120 |
}
|
- |
|
| 121 |
|
- |
|
| 122 |
/**
|
86 |
/**
|
| 123 |
* Permet d'obtenir des infos pour un ou plusieurs ids utilisateurs indiqué(s) dans la ressource.
|
87 |
* Permet d'obtenir des infos pour un ou plusieurs ids utilisateurs indiqué(s) dans la ressource.
|
| 124 |
* RESSOURCE : /infos-par-ids/#id[,#id]*
|
88 |
* RESSOURCE : /infos-par-ids/#id[,#id]*
|
| 125 |
* PARAMÈTRES : forceArrayOfArrays - si true, retourne un tableau associatif même s'il n'y a qu'un
|
89 |
* PARAMÈTRES : forceArrayOfArrays - si true, retourne un tableau associatif même s'il n'y a qu'un
|
| 126 |
* résultat (casse la rétrocompatibilté)
|
90 |
* résultat (casse la rétrocompatibilté)
|
| Line 153... |
Line 117... |
| 153 |
}
|
117 |
}
|
| Line 154... |
Line 118... |
| 154 |
|
118 |
|
| 155 |
return $infos;
|
119 |
return $infos;
|
| Line -... |
Line 120... |
| - |
|
120 |
}
|
| - |
|
121 |
|
| - |
|
122 |
// proxy pour AnnuaireModele::obtenirIdParMail() car le présent service
|
| - |
|
123 |
// est utilisé comme une lib => c'est MAL ! @TODO séparer lib et service !!
|
| - |
|
124 |
public function getIdParCourriel($courriel) {
|
| - |
|
125 |
return $this->getAnnuaire()->obtenirIdParMail($this->idAnnuaire, $courriel);
|
| - |
|
126 |
}
|
| - |
|
127 |
|
| - |
|
128 |
// proxy pour AnnuaireModele::inscrireUtilisateurCommeUnGrosPorc() car le présent service
|
| - |
|
129 |
// est utilisé comme une lib => c'est MAL ! @TODO séparer lib et service !!
|
| - |
|
130 |
public function inscrireUtilisateurCommeUnGrosPorc($donnees) {
|
| - |
|
131 |
return $this->getAnnuaire()->inscrireUtilisateurCommeUnGrosPorc($donnees);
|
| 156 |
}
|
132 |
}
|
| 157 |
|
133 |
|
| 158 |
/**
|
134 |
/**
|
| 159 |
* Méthode rétrocompatible : appelle getInfosParIds et s'il n'y a qu'un résultat,
|
135 |
* Méthode rétrocompatible : appelle getInfosParIds et s'il n'y a qu'un résultat,
|
| 160 |
* ne retourne pas un tableau associatif mais un tableau simple
|
136 |
* ne retourne pas un tableau associatif mais un tableau simple
|
| Line 196... |
Line 172... |
| 196 |
foreach ($utilisateurs as $courriel => $utilisateur) {
|
172 |
foreach ($utilisateurs as $courriel => $utilisateur) {
|
| 197 |
$id = $utilisateur['id'];
|
173 |
$id = $utilisateur['id'];
|
| 198 |
$utilisateur['pseudo'] = $this->obtenirPseudo($id);
|
174 |
$utilisateur['pseudo'] = $this->obtenirPseudo($id);
|
| 199 |
$utilisateur['pseudoUtilise'] = $this->obtenirPseudoUtilise($id);
|
175 |
$utilisateur['pseudoUtilise'] = $this->obtenirPseudoUtilise($id);
|
| 200 |
$utilisateur['intitule'] = $this->formaterIntitule($utilisateur);
|
176 |
$utilisateur['intitule'] = $this->formaterIntitule($utilisateur);
|
| 201 |
$utilisateur['nomWiki'] = $this->formaterNomWiki($utilisateur);
|
177 |
$utilisateur['nomWiki'] = $this->formaterNomWiki($utilisateur['intitule']);
|
| 202 |
$courriel = strtolower($courriel);
|
178 |
$courriel = strtolower($courriel);
|
| 203 |
$infos_utilisateurs[$courriel] = $utilisateur;
|
179 |
$infos_utilisateurs[$courriel] = $utilisateur;
|
| 204 |
}
|
180 |
}
|
| 205 |
return $infos_utilisateurs;
|
181 |
return $infos_utilisateurs;
|
| 206 |
}
|
182 |
}
|
| Line 433... |
Line 409... |
| 433 |
$infos = $this->$methode();
|
409 |
$infos = $this->$methode();
|
| 434 |
} else {
|
410 |
} else {
|
| 435 |
$this->messages[] = "Ce type de méthode '$methode_demande' n'est pas disponible pour la requete PUT.";
|
411 |
$this->messages[] = "Ce type de méthode '$methode_demande' n'est pas disponible pour la requete PUT.";
|
| 436 |
}
|
412 |
}
|
| 437 |
} else {
|
413 |
} else {
|
| 438 |
$this->messages[] = "Ce service n'est pas implémanté.";
|
414 |
$this->messages[] = "Ce service n'est pas implémenté.";
|
| 439 |
}
|
415 |
}
|
| Line 440... |
Line 416... |
| 440 |
|
416 |
|
| 441 |
if (!is_null($infos)) {
|
417 |
if (!is_null($infos)) {
|
| 442 |
$this->envoyerJson($infos);
|
418 |
$this->envoyerJson($infos);
|