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); |