Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 637 → Rev 638

/trunk/services/modules/0.1/cel/Images.php
32,6 → 32,7
private $tris_supportes = array('date');
private $retour_champs = array('determination.nom_sci' => 'nom_sel', 'determination.nom_sci.code' => 'nom_sel_nn',
'station.lieudit' => 'lieudit', 'station', 'milieu');
private $code_ref_tax_demande = null;
private $ref_tax_demande = array();
private $infosImages = array();
private $nbreImages = 0;
91,6 → 92,9
if (isset($this->parametres['navigation.limite']) == false) {
$this->parametres['navigation.limite'] = 100;
}
if (isset($this->parametres['referentiel']) == false) {
$this->parametres['referentiel'] = self::CODE_REFTAX_DEFAUT;
}
}
 
private function verifierParametres() {
203,13 → 207,13
private function analyserMasqueNn() {
$nn = $this->parametres['masque.nn'];
if (preg_match('/^[0-9]+$/', $nn)) {
$this->ref_tax_demande[self::CODE_REFTAX_DEFAUT][] = $nn;
$this->ref_tax_demande[$this->parametres['referentiel']][] = $nn;
} else {
// ceci contient potentiellement des formes ref_tax1:nn1,nn2;ref_tax2:nn3,nn4
$projetsListeEtNumNoms = explode(';', $nn);
if (count($projetsListeEtNumNoms) > 0) {
foreach ($projetsListeEtNumNoms as $projetEtNumNoms) {
$projetEtNumNoms = (strpos($projetEtNumNoms, ':')) ? $projetEtNumNoms : self::CODE_REFTAX_DEFAUT.':'.$projetEtNumNoms;
$projetEtNumNoms = (strpos($projetEtNumNoms, ':')) ? $projetEtNumNoms : $this->parametres['referentiel'].':'.$projetEtNumNoms;
list($projet, $numNoms) = explode(':', $projetEtNumNoms);
$this->ref_tax_demande[$projet] = explode(',', $numNoms);
}
220,11 → 224,9
 
//+---------------------------------------- REQUETES ---------------------------------------------------------------+
private function obtenirIdImageAuHasard() {
$refTax = self::CODE_REFTAX_DEFAUT;
$refTax = $this->parametres['referentiel'];
$numNom = $this->Bdd->proteger($this->ref_tax_demande[$refTax][0]);
 
//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.id_image AS id_image '.
'FROM cel_obs_images AS coi '.
' LEFT JOIN cel_obs AS co '.
231,6 → 233,7
'ON (coi.id_observation = co.id_observation) '.
'WHERE ci.transmission = 1 '.
" AND ci.nom_ret_nn IN ($numNom)";
" AND co.nom_referentiel = ".$this->Bdd->proteger($refTax);
 
$resultat = $this->Bdd->recupererTous($requete);
 
245,7 → 248,7
}
 
private function obtenirIdPremiereImage() {
$refTax = self::CODE_REFTAX_DEFAUT;
$refTax = $this->parametres['referentiel'];
$numNom = $this->Bdd->proteger($this->ref_tax_demande[$refTax][0]);
$requete = 'SELECT ci.id_image AS id_image '.
'FROM cel_images AS ci'.
256,6 → 259,7
'WHERE co.transmission = 1 '.
" AND co.nom_ret_nn IN ($numNom) ".
' AND ci.date_prise_de_vue != "0000-00-00" ORDER BY ci.date_prise_de_vue ASC '.
' AND co.nom_referentiel LIKE '.$this->proteger($refTax.'%').' '.
'LIMIT 1';
 
$resultat = $this->Bdd->recupererTous($requete);
272,7 → 276,7
 
private function chargerInfosImage() {
$requete = 'SELECT SQL_CALC_FOUND_ROWS '.
' ci.id_image AS id_img, ci.date_creation AS date, '.
' ci.id_image AS id_img, co.date_observation AS date, '.
' co.id_observation AS id_obs, '.
' ci.courriel_utilisateur AS utilisateur_courriel, '.
' nom_sel, nom_sel_nn, '.
288,7 → 292,7
}
 
private function chargerListeImages() {
$refTax = self::CODE_REFTAX_DEFAUT;
$refTax = $this->parametres['referentiel'];
$numNomListe = implode(',', $this->ref_tax_demande[$refTax]);
$depart = $this->parametres['navigation.depart'];
$limite = $this->parametres['navigation.limite'];
298,7 → 302,7
$requete = 'SELECT SQL_CALC_FOUND_ROWS '.
' 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 '.
' ci.id_image AS id_img, co.date_observation AS date '.
(isset($this->parametres['retour.champs']) ? ', '.$this->parametres['retour.champs'] : '').
'FROM cel_images AS ci'.
' LEFT JOIN cel_obs_images AS coi '.
314,10 → 318,10
}
 
private function formerRequeteConditions($numNomListe) {
$refTax = $this->parametres['referentiel'];
$where[] = " co.transmission = 1 AND co.nom_ret_nn IN ($numNomListe) ";
if (isset($this->parametres['retour.tri']) && $this->parametres['retour.tri'] == 'date') {
$where[] = ' ci.date_prise_de_vue != "0000-00-00"';
}
$where[] = " co.nom_referentiel LIKE ".$this->Bdd->proteger($refTax."%").' ';
return ' WHERE '.implode(' AND ', $where);
}
 
324,7 → 328,7
private function formerRequeteTri() {
$order = '';
if (isset($this->parametres['retour.tri']) && $this->parametres['retour.tri'] == 'date') {
$order = ' ORDER BY ci.date_prise_de_vue ASC ';
$order = ' ORDER BY co.date_observation ASC ';
}
return $order;
}
497,7 → 501,7
}
 
private function formaterNomSciCode($infos) {
return self::CODE_REFTAX_DEFAUT.'.'.$infos['nom_sel_nn'];
return $this->parametres['referentiel'].'.'.$infos['nom_sel_nn'];
}
 
private function formaterStation($infos) {
526,7 → 530,7
if ($this->avoirContenu($infos['zone_geo'])) {
$commune[] = $infos['zone_geo'];
}
if (isset($infos['ce_zone_geo']) && $this->avoirContenu($infos['ce_zone_geo'])) {
if (isset($infos['ce_zone_geo']) && $this->avoirContenu($infos['ce_zone_geo']) && $infos['ce_zone_geo'] != 'INSEE-C:') {
$commune[] = '('.substr(str_replace('INSEE-C:','',$infos['ce_zone_geo']), 0, 2).')';
}
return implode(' ', $commune);
533,11 → 537,7
}
 
private function avoirContenu($info) {
$vide = true;
if ($info == null || $info == '' || $info == '000null') {
$vide = false;
}
return $vide;
return !($info == null || $info == '' || $info == '000null');
}
}
?>
/trunk/services/modules/0.1/coste/Images.php
69,6 → 69,12
case 'masque.nn' :
$this->analyserMasque($val,'nn');
break;
case 'referentiel' :
// ce paramètre est ignoré dans le cas de coste
// car seul le cel le prend en compte pour le moment
// on l'indique ici dans le switch car ce sont les mêmes url
// qui sont appelées pour le cel et coste (à retirer donc si ça change)
break;
case 'navigation.depart' :
$this->limite_requete['depart'] = $val;
break;