Subversion Repositories eFlore/Applications.del

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2212 arthur 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
}