14,10 → 14,10 |
* @copyright 1999-2011 Tela Botanica (accueil@tela-botanica.org) |
*/ |
// TODO : Config et Outils sont des classes statiques qui doivent poser des pb pour les tests... |
class Images extends Commun { |
class Images { |
|
protected $parametres = array(); |
protected $ressources = array(); |
private $parametres = array(); |
private $ressources = array(); |
private $Bdd; |
|
const CODE_REFTAX_DEFAUT = 'bdtfx'; |
30,7 → 30,7 |
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', |
private $retour_champs = array('determination.nom_sci' => 'nom_sel', 'determination.nom_sci.code' => 'nom_sel_nn', |
'station.lieudit' => 'lieudit', 'station', 'milieu'); |
private $ref_tax_demande = array(); |
private $infosImages = array(); |
225,12 → 225,12 |
|
//TODO: modifier la requete lors du passage à la nouvelle base de données pour faire quelque chose |
// du numéro nomenclatural + modifier les champs appelés pour le nouveau format |
$requete = 'SELECT coi.coi_ce_image AS id_image '. |
$requete = 'SELECT coi.id_image AS id_image '. |
'FROM cel_obs_images AS coi '. |
' LEFT JOIN cel_inventory AS ci '. |
'ON (coi.coi_ce_observation = ci.ordre AND coi.coi_ce_utilisateur = ci.identifiant) '. |
' LEFT JOIN cel_obs AS co '. |
'ON (coi.id_observation = co.id_observation) '. |
'WHERE ci.transmission = 1 '. |
" AND ci.num_nom_ret IN ($numNom)"; |
" AND ci.nom_ret_nn IN ($numNom)"; |
|
$resultat = $this->Bdd->recupererTous($requete); |
|
247,15 → 247,15 |
private function obtenirIdPremiereImage() { |
$refTax = self::CODE_REFTAX_DEFAUT; |
$numNom = $this->Bdd->proteger($this->ref_tax_demande[$refTax][0]); |
$requete = 'SELECT ci.ci_id_image AS id_image '. |
$requete = 'SELECT ci.id_image AS id_image '. |
'FROM cel_images AS ci'. |
' LEFT JOIN cel_obs_images AS coi '. |
' ON (coi.coi_ce_image = ci.ci_id_image) '. |
' LEFT JOIN cel_inventory AS co '. |
' ON (coi.coi_ce_observation = co.ordre AND coi.coi_ce_utilisateur = co.identifiant) '. |
' ON (coi.id_image = ci.id_image) '. |
' LEFT JOIN cel_obs AS co '. |
' ON (coi.id_observation = co.id_observation) '. |
'WHERE co.transmission = 1 '. |
" AND co.num_nom_ret IN ($numNom) ". |
' AND ci.ci_meta_date != "0000-00-00" ORDER BY ci.ci_meta_date ASC'; |
" AND co.nom_ret_nn IN ($numNom) ". |
' AND ci.date_prise_de_vue != "0000-00-00" ORDER BY ci.date_prise_de_vue ASC'; |
|
$resultat = $this->Bdd->recupererTous($requete); |
|
271,17 → 271,17 |
|
private function chargerInfosImage() { |
$requete = 'SELECT SQL_CALC_FOUND_ROWS '. |
' ci.ci_id_image AS id_img, ci.ci_meta_date AS date, '. |
' co.id AS id_obs, '. |
' identifiant AS utilisateur_courriel, '. |
' nom_sel, num_nom_sel, '. |
' location, id_location, lieudit, station, milieu '. |
' ci.id_image AS id_img, ci.date_creation AS date, '. |
' co.id_observation AS id_obs, '. |
' courriel_utilisateur AS utilisateur_courriel, '. |
' nom_sel, nom_sel_nn, '. |
' zone_geo, ce_zone_geo, lieudit, station, milieu '. |
'FROM cel_images AS ci'. |
' LEFT JOIN cel_obs_images AS coi '. |
' ON (coi.coi_ce_image = ci.ci_id_image) '. |
' LEFT JOIN cel_inventory AS co '. |
' ON (coi.coi_ce_observation = co.ordre AND coi.coi_ce_utilisateur = co.identifiant) '. |
'WHERE ci.ci_id_image = '.$this->ressources[0]; |
' ON (coi.id_image = ci.ci_id_image) '. |
' LEFT JOIN cel_obs AS co '. |
' ON (coi.id_observation = co.id_observation) '. |
'WHERE ci.id_image = '.$this->ressources[0]; |
|
$this->infosImages = $this->Bdd->recupererTous($requete); |
} |
295,15 → 295,15 |
//TODO: modifier la requete lors du passage à la nouvelle base de données pour faire quelque chose |
// du numéro nomenclatural + modifier les champs appelés pour le nouveau format |
$requete = 'SELECT SQL_CALC_FOUND_ROWS '. |
' co.id AS id_obs, co.identifiant AS utilisateur_courriel, co.location, co.id_location, '. |
' co.nom_sel, co.num_nom_sel, '. |
' ci.ci_id_image AS id_img, ci.ci_meta_date AS date '. |
' co.id_observation AS id_obs, co.courriel_utilisateur AS utilisateur_courriel, co.zone_geo, co.ce_zone_geo, '. |
' co.nom_sel, co.nom_sel_nn, '. |
' ci.id_image AS id_img, ci.date_prise_de_vue AS date '. |
(isset($this->parametres['retour.champs']) ? ', '.$this->parametres['retour.champs'] : ''). |
'FROM cel_images AS ci'. |
' LEFT JOIN cel_obs_images AS coi '. |
' ON (coi.coi_ce_image = ci.ci_id_image) '. |
' LEFT JOIN cel_inventory AS co '. |
' ON (coi.coi_ce_observation = co.ordre AND coi.coi_ce_utilisateur = co.identifiant) '. |
' ON (coi.id_image = ci.id_image) '. |
' LEFT JOIN cel_obs AS co '. |
' ON (coi.id_observation = co.id_observation) '. |
$this->formerRequeteConditions($numNomListe).' '. |
'GROUP BY id_img '. |
$this->formerRequeteTri(). |
313,9 → 313,9 |
} |
|
private function formerRequeteConditions($numNomListe) { |
$where[] = " co.transmission = 1 AND co.num_nom_ret IN ($numNomListe) "; |
$where[] = " co.transmission = 1 AND co.nom_ret_nn IN ($numNomListe) "; |
if (isset($this->parametres['retour.tri']) && $this->parametres['retour.tri'] == 'date') { |
$where[] = ' ci.ci_meta_date != "0000-00-00"'; |
$where[] = ' ci.date_prise_de_vue != "0000-00-00"'; |
} |
return ' WHERE '.implode(' AND ', $where); |
} |
323,7 → 323,7 |
private function formerRequeteTri() { |
$order = ''; |
if (isset($this->parametres['retour.tri']) && $this->parametres['retour.tri'] == 'date') { |
$order = ' ORDER BY ci.ci_meta_date ASC '; |
$order = ' ORDER BY ci.date_prise_de_vue ASC '; |
} |
return $order; |
} |
496,12 → 496,12 |
} |
|
private function formaterNomSciCode($infos) { |
return self::CODE_REFTAX_DEFAUT.'.'.$infos['num_nom_sel']; |
return self::CODE_REFTAX_DEFAUT.'.'.$infos['nom_sel_nn']; |
} |
|
private function formaterStation($infos) { |
$station = array(); |
if (isset($infos['location']) && $commune = $this->formaterCommune($infos)) { |
if (isset($infos['zone_geo']) && $commune = $this->formaterCommune($infos)) { |
$station['station.commune'] = $commune; |
} |
if (isset($infos['lieudit']) && $this->avoirContenu($infos['lieudit'])) { |
522,11 → 522,11 |
|
private function formaterCommune($infos) { |
$commune = array(); |
if ($this->avoirContenu($infos['location'])) { |
$commune[] = $infos['location']; |
if ($this->avoirContenu($infos['zone_geo'])) { |
$commune[] = $infos['zone_geo']; |
} |
if (isset($infos['id_location']) && $this->avoirContenu($infos['id_location'])) { |
$commune[] = '('.$infos['id_location'].')'; |
if (isset($infos['ce_zone_geo']) && $this->avoirContenu($infos['ce_zone_geo'])) { |
$commune[] = '('.substr(str_replace('INSEE-C:','',$infos['ce_zone_geo']), 0, 2).')'; |
} |
return implode(' ', $commune); |
} |