Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 537 → Rev 538

/trunk/services/modules/0.1/cel/Images.php
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);
}