Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 377 → Rev 378

/trunk/services/modules/0.1/cel/Images.php
30,6 → 30,8
private $cheminImagesBase = '';
private $formats_supportes = array(self::MIME_JPEG, self::MIME_JSON);
private $tris_supportes = array('date');
private $retour_champs = array('determination.nom_sci' => 'nom_sel', 'determination.nom_sci.code' => 'num_nom_sel',
'station.lieudit' => 'lieudit', 'station', 'milieu');
private $ref_tax_demande = array();
private $infosImages = array();
private $nbreImages = 0;
55,7 → 57,7
 
$resultat = new ResultatService();
if ($this->parametres['retour'] == self::MIME_JPEG) {
if ($this->parametres['retour.tri'] == 'date') {
if ($this->parametres['retour.tri'] == 'date') { // recherche la plus vieille image du CEL
$id_image_a_renvoyer = $this->obtenirIdPremiereImage();
} else {
$id_image_a_renvoyer = $this->obtenirIdImageAuHasard();
124,6 → 126,13
$erreurs[] = "Le type de tri '{$this->parametres['retour.tri']}' n'est pas supporté";
}
}
if (isset($this->parametres['retour.champs'])){
if ($this->verifierValeurParametreRetourChamps() == false) {
$erreurs[] = "Le champs '{$this->parametres['retour.champs']}' n'existe pas";
}
}
if ($this->verifierValeurParametreNavigationDepart() == false) {
$erreurs[] = "Le paramètre 'navigation.depart' doit possèder un valeur numérique.";
}
170,6 → 179,15
private function verifierValeurParametreTri() {
return in_array($this->parametres['retour.tri'], $this->tris_supportes);
}
private function verifierValeurParametreRetourChamps() {
$ok = false;
$liste_champs = preg_split(',', $this->parametres['retour.champs']);
foreach ($liste_champs as $champs) {
$ok[$champs] = array_key_exists($champs, $this->retour_champs);
}
return $ok;
}
 
private function verifierValeurParametreNavigationDepart() {
$depart = $this->parametres['navigation.depart'];
279,12 → 297,7
// du numéro nomenclatural + modifier les champs appelés pour le nouveau format + supprimer table annuaire
$annuaireTable = $this->config['annuaire']['table'];
$requete = 'SELECT SQL_CALC_FOUND_ROWS '.
' ci.ci_id_image AS id_img, co.id AS id_obs, '.
' identifiant AS utilisateur_courriel, '.
' an.u_id AS utilisateur_id, '.
' nom_sel, num_nom_sel, '.
' location, id_location, lieudit, station, milieu, '.
' ci.ci_meta_date AS date '.
$this->formerRequeteChamps().
'FROM cel_images AS ci'.
' LEFT JOIN cel_obs_images AS coi '.
' ON (coi.coi_ce_image = ci.ci_id_image) '.
299,7 → 312,16
 
$this->infosImages = $this->Bdd->recupererTous($requete);
}
 
private function formerRequeteChamps() {
$champs[] = " ci.ci_id_image AS id_img, co.id AS id_obs, identifiant AS utilisateur_courriel, location, ".
"id_location, ci.ci_meta_date AS date, an.u_id AS utilisateur_id ";
if (isset($this->parametres['retour.champs'])) {
$champs[] = $this->parametres['retour.champs'];
}
return implode(' , ', $champs);
}
private function formerRequeteConditions($numNomListe) {
$where[] = " co.transmission = 1 AND co.num_nom_ret IN ($numNomListe) ";
if (isset($this->parametres['retour.tri']) && $this->parametres['retour.tri'] == 'date') {
438,6 → 460,7
foreach ($this->infosImages as $img) {
$info = $this->formaterInfosImage($img);
$id = $img['id_img'];
$info['href'] = $this->config['urlService'].'/'.$id;
if (!isset($resultats[$id])) {
$resultats[$id] = $info;
} else {
451,12 → 474,14
$info = array();
$info['date'] = $img['date'];
$info['mime'] = self::MIME_JPEG;
$info['auteur.libelle'] = $this->formaterAuteur($img);
$info['auteur'] = $this->formaterAuteur($img);
$info['auteur.id'] = $img['utilisateur_id'];
$info['binaire.href'] = $this->formaterUrlImage($img);
$info['determination.libelle'] = $this->formaterDetermination($img);
$info['determination.nom_sci'] = $img['nom_sel'];
$info['determination.nom_sci.code'] = $this->formaterNomSciCode($img);
if (isset($img['nom_sel'])) {
$info['determination.libelle'] = $this->formaterDetermination($img);
$info['determination.nom_sci'] = $img['nom_sel'];
$info['determination.nom_sci.code'] = $this->formaterNomSciCode($img);
}
$info = array_merge($info, $this->formaterStation($img));
return $info;
}
487,20 → 512,22
 
private function formaterStation($infos) {
$station = array();
if ($commune = $this->formaterCommune($infos)) {
if (isset($infos['location']) && $commune = $this->formaterCommune($infos)) {
$station['station.commune'] = $commune;
}
if ($this->avoirContenu($infos['lieudit'])) {
if (isset($infos['lieudit']) && $this->avoirContenu($infos['lieudit'])) {
$station['station.lieudit'] = $infos['lieudit'];
}
if ($this->avoirContenu($infos['station'])) {
if (isset($infos['station']) && $this->avoirContenu($infos['station'])) {
$station['station.station'] = $infos['station'];
}
 
if ($this->avoirContenu($infos['milieu'])) {
if (isset($infos['milieu']) && $this->avoirContenu($infos['milieu'])) {
$station['station.milieu'] = $infos['milieu'];
}
$station['station.libelle'] = implode(' > ', $station);
if (count($station) > 1) {
$station['station.libelle'] = implode(' > ', $station);
}
return $station;
}
 
509,7 → 536,7
if ($this->avoirContenu($infos['location'])) {
$commune[] = $infos['location'];
}
if ($this->avoirContenu($infos['id_location'])) {
if (isset($infos['id_location']) && $this->avoirContenu($infos['id_location'])) {
$commune[] = '('.$infos['id_location'].')';
}
return implode(' ', $commune);