Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1822 → Rev 1823

/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
 
/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/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&eacute;e le <?= $observation['date']; ?> &agrave; <?= $observation['lieu']; ?>
observ&eacute;e le <?= $observation['date']; ?> &agrave; <?= $observation['lieu']; ?> par <?= $observation['auteur']; ?>
</h3>
<br />
<?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;
}
}