/trunk/scripts/modules/adeterminer/squelettes/aDeterminer.tpl.html |
---|
65,7 → 65,7 |
<?php foreach ($liste_observations as $observation) : ?> |
<h3> |
<a href="<?= $observation['lien']; ?>">Observation <?= $observation['id'] ?> - <em><?= $observation['nom_propose']; ?></em> </a> |
observée le <?= $observation['date']; ?> à <?= $observation['lieu']; ?> |
observée le <?= $observation['date']; ?> à <?= $observation['lieu']; ?> par <?= $observation['auteur']; ?> |
</h3> |
<br /> |
<?php endforeach ; ?> |
/trunk/scripts/modules/adeterminer/squelettes/aDeterminer.tpl.txt |
---|
5,7 → 5,7 |
<?php foreach ($liste_observations as $observation) : ?> |
--> Observation <?= $observation['id'] ?> - <<?= $observation['lien']; ?>> |
<?= $observation['nom_propose']; ?> observée le <?= $observation['date']; ?> à <?= $observation['lieu']; ?> |
<?= $observation['nom_propose']; ?> observée le <?= $observation['date']; ?> à <?= $observation['lieu']; ?> par <?= $observation['auteur']; ?> |
<?php endforeach ; ?> |
/trunk/scripts/modules/adeterminer/AlerteMailADeterminer.php |
---|
91,7 → 91,26 |
} |
private function formaterObservations($liste_obs) { |
// lister les courriels |
$courriels = array(); |
foreach ($liste_obs as $obs) { |
$courriels[] = $obs['courriel_utilisateur']; |
} |
$courriels = array_unique($courriels); |
$courriels = array_filter($courriels); |
// récupérer les pseudos |
$identites = TelaBotanica\Del\Commun\Utilisateurs::identiteUtilisateurs($courriels, $this->conteneur->getParametre('url_service_utilisateur')); |
// emboîter tout |
foreach ($liste_obs as $obs) { |
// identité de l'utilisateur : pseudo, nom-prénom ou courriel tronqué |
$identiteUtil = $obs['courriel_utilisateur']; // sera tronqué si rien de mieux n'a été trouvé |
if (isset($identites[$obs['courriel_utilisateur']])) { |
$identiteUtil = $identites[$obs['courriel_utilisateur']]; |
} |
$identiteUtil = TelaBotanica\Del\Commun\Utilisateurs::identiteAAfficher($identiteUtil); |
$id_obs = $obs['id_observation']; |
$infos = array(); |
$infos['id'] = $id_obs; |
99,6 → 118,7 |
$infos['nom_propose'] = $this->formaterNomSci($obs); |
$infos['lien'] = $this->obtenirLienFicheObs($id_obs); |
$infos['lieu'] = $this->formaterLieu($obs); |
$infos['auteur'] = $identiteUtil; |
$this->observations_concernees[$id_obs] = $infos; |
} |
} |
/trunk/commun/Utilisateurs.php |
---|
New file |
0,0 → 1,64 |
<?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; |
} |
} |
/trunk/widget/bibliotheque/WidgetCommun.php |
---|
195,25 → 195,6 |
return $autorisation; |
} |
protected function recupererUtilisateursIdentite(Array $courriels) { |
// Récupération des données au format Json |
$service = "utilisateur/identite-par-courriel/".implode(',', $courriels); |
$url = sprintf($this->config['chemins']['baseURLServicesAnnuaireTpl'], $service); |
$json = $this->getDao()->consulter($url); |
$utilisateurs = json_decode($json); |
foreach ($courriels as $courriel) { |
$info = array('id' => null, 'intitule' => ''); |
if (isset($utilisateurs->$courriel)) { |
$info['intitule'] = $utilisateurs->$courriel->intitule; |
$info['id'] = $utilisateurs->$courriel->id; |
} else { |
$info['intitule'] = $this->tronquerCourriel($courriel); |
} |
$noms[$courriel] = $info; |
} |
return $noms; |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION de l'ENVOIE au NAVIGATEUR |