Blame | Last modification | View Log | RSS feed
<?php
namespace TelaBotanica\Del\Commun;
class Utilisateurs {
/**
* Récupère toutes les informations (incluant le pseudo) sur une liste d'utilisateurs,
* à partir de leurs courriels
* Retourne un tableau dont les clefs sont les courriels et les valeurs sont un
* tableau d'attributs
*
* @param array $courriels la liste des courriels pour lesquels récupérer l'identité
* @param string $baseUrlServiceAnnuaire le squelette d'URL du service d'annuaire à appeler
*/
static function identiteUtilisateurs(array $courriels, $baseUrlServiceAnnuaire) {
// Récupération des données au format Json @TODO POST plutôt que GET car limite de taille !
$service = "identite-par-courriel/".implode(',', $courriels);
$url = sprintf($baseUrlServiceAnnuaire, $service);
$json = file_get_contents($url);
$utilisateurs = json_decode($json, true);
return $utilisateurs;
}
/**
* D'après l'identité complète d'un utilisateur, retourne l'identité à afficher, càd par ordre de préférence décroissant:
* - son pseudo s'il en a un
* - ses prénom et nom s'ils au moins un des deux est renseigné
* - son adresse courriel tronquée
*
* Si $identité est "vide" (empty()), retourne NULL
* Si $identité n'est pas un tableau, on considère que c'est une adresse courriel et on la retourne tronquée
*
* @param mixed $identite
*/
static function identiteAAfficher($identite) {
$retour = null;
if (! empty($identite)) {
if (is_array($identite)) { // cas général
// y a-t-il un pseudo ?
if (isset($identite['pseudo']) && $identite['pseudo'] != '') {
$retour = $identite['pseudo'];
} else {
// prénom et nom, si la personne est inscrite (on sait jamais)
// et si au moins un des deux est rempli
if ((isset($identite['prenom']) && $identite['prenom'] != '') || (isset($identite['nom']) && $identite['nom'] != '')) {
$retour = $identite['prenom'];
if ($retour != '') {
$retour .= ' ';
}
$retour .= $identite['nom'];
}
}
} else {
$posArobase = strpos($identite, "@");
if ($posArobase > 0) { // courriel
$retour = substr($identite, 0, $posArobase + 1) . "...";
}
}
}
return $retour;
}
}