| 1823 | mathias | 1 | <?php
 | 
        
           |  |  | 2 | namespace TelaBotanica\Del\Commun;
 | 
        
           |  |  | 3 |   | 
        
           |  |  | 4 | class Utilisateurs {
 | 
        
           |  |  | 5 |   | 
        
           |  |  | 6 | 	/**
 | 
        
           |  |  | 7 | 	 * Récupère toutes les informations (incluant le pseudo) sur une liste d'utilisateurs,
 | 
        
           |  |  | 8 | 	 * à partir de leurs courriels
 | 
        
           |  |  | 9 | 	 * Retourne un tableau dont les clefs sont les courriels et les valeurs sont un
 | 
        
           |  |  | 10 | 	 * tableau d'attributs
 | 
        
           |  |  | 11 | 	 *
 | 
        
           |  |  | 12 | 	 * @param array $courriels la liste des courriels pour lesquels récupérer l'identité
 | 
        
           |  |  | 13 | 	 * @param string $baseUrlServiceAnnuaire le squelette d'URL du service d'annuaire à appeler
 | 
        
           |  |  | 14 | 	 */
 | 
        
           |  |  | 15 | 	static function identiteUtilisateurs(array $courriels, $baseUrlServiceAnnuaire) {
 | 
        
           |  |  | 16 | 		// Récupération des données au format Json @TODO POST plutôt que GET car limite de taille !
 | 
        
           |  |  | 17 | 		$service = "identite-par-courriel/".implode(',', $courriels);
 | 
        
           |  |  | 18 | 		$url = sprintf($baseUrlServiceAnnuaire, $service);
 | 
        
           |  |  | 19 |   | 
        
           |  |  | 20 | 		$json = file_get_contents($url);
 | 
        
           |  |  | 21 | 		$utilisateurs = json_decode($json, true);
 | 
        
           |  |  | 22 |   | 
        
           |  |  | 23 | 		return $utilisateurs;
 | 
        
           |  |  | 24 | 	}
 | 
        
           |  |  | 25 |   | 
        
           |  |  | 26 | 	/**
 | 
        
           |  |  | 27 | 	 * D'après l'identité complète d'un utilisateur, retourne l'identité à afficher, càd par ordre de préférence décroissant:
 | 
        
           |  |  | 28 | 	 * - son pseudo s'il en a un
 | 
        
           |  |  | 29 | 	 * - ses prénom et nom s'ils au moins un des deux est renseigné
 | 
        
           |  |  | 30 | 	 * - son adresse courriel tronquée
 | 
        
           |  |  | 31 | 	 *
 | 
        
           |  |  | 32 | 	 * Si $identité est "vide" (empty()), retourne NULL
 | 
        
           |  |  | 33 | 	 * Si $identité n'est pas un tableau, on considère que c'est une adresse courriel et on la retourne tronquée
 | 
        
           |  |  | 34 | 	 *
 | 
        
           |  |  | 35 | 	 * @param mixed $identite
 | 
        
           |  |  | 36 | 	 */
 | 
        
           |  |  | 37 | 	static function identiteAAfficher($identite) {
 | 
        
           |  |  | 38 | 		$retour = null;
 | 
        
           |  |  | 39 | 		if (! empty($identite)) {
 | 
        
           |  |  | 40 | 			if (is_array($identite)) { // cas général
 | 
        
           |  |  | 41 | 				// y a-t-il un pseudo ?
 | 
        
           |  |  | 42 | 				if (isset($identite['pseudo']) && $identite['pseudo'] != '') {
 | 
        
           |  |  | 43 | 					$retour = $identite['pseudo'];
 | 
        
           |  |  | 44 | 				} else {
 | 
        
           |  |  | 45 | 					// prénom et nom, si la personne est inscrite (on sait jamais)
 | 
        
           |  |  | 46 | 					// et si au moins un des deux est rempli
 | 
        
           |  |  | 47 | 					if ((isset($identite['prenom']) && $identite['prenom'] != '') || (isset($identite['nom']) && $identite['nom'] != '')) {
 | 
        
           |  |  | 48 | 						$retour = $identite['prenom'];
 | 
        
           |  |  | 49 | 						if ($retour != '') {
 | 
        
           |  |  | 50 | 							$retour .= ' ';
 | 
        
           |  |  | 51 | 						}
 | 
        
           |  |  | 52 | 						$retour .= $identite['nom'];
 | 
        
           |  |  | 53 | 					}
 | 
        
           |  |  | 54 | 				}
 | 
        
           |  |  | 55 | 			} else {
 | 
        
           |  |  | 56 | 				$posArobase = strpos($identite, "@");
 | 
        
           |  |  | 57 | 				if ($posArobase > 0) { // courriel
 | 
        
           |  |  | 58 | 					$retour = substr($identite, 0, $posArobase + 1) . "...";
 | 
        
           |  |  | 59 | 				}
 | 
        
           |  |  | 60 | 			}
 | 
        
           |  |  | 61 | 		}
 | 
        
           |  |  | 62 | 		return $retour;
 | 
        
           |  |  | 63 | 	}
 | 
        
           |  |  | 64 | }
 |