Subversion Repositories eFlore/Applications.del

Rev

Rev 1823 | Blame | Compare with Previous | 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;
        }
}