30,13 → 30,12 |
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' => 'num_nom_sel', |
'station.lieudit' => 'lieudit', 'station', 'milieu'); |
private $ref_tax_demande = array(); |
private $infosImages = array(); |
private $nbreImages = 0; |
private $Utilisateurs = null; |
private $intitulesAuteurs = array(); |
private $UrlNavigation = null; |
|
public function __construct(Bdd $bdd = null, Array $config = null, Utilisateurs $utilisateurs = null, Url $url = null) { |
66,7 → 65,7 |
} else if ($this->parametres['retour'] == self::MIME_JSON) { |
if (isset($this->ressources[0])) { |
$this->chargerInfosImage(); |
$this->extraireIntitulesAuteurs(); |
$this->extraireIdentitesAuteurs(); |
$resultat->corps = $this->formaterInfosImage($this->infosImages[0]); |
} else { |
$this->chargerListeImages(); |
126,13 → 125,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."; |
} |
179,7 → 178,7 |
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']); |
294,34 → 293,25 |
$limite = $this->parametres['navigation.limite']; |
|
//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 + supprimer table annuaire |
$annuaireTable = $this->config['annuaire']['table']; |
// du numéro nomenclatural + modifier les champs appelés pour le nouveau format |
$requete = 'SELECT SQL_CALC_FOUND_ROWS '. |
$this->formerRequeteChamps(). |
'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) '. |
" LEFT JOIN $annuaireTable AS an ". |
' ON (co.identifiant = an.u_mail) '. |
$this->formerRequeteConditions($numNomListe). |
' GROUP BY id_img '. |
$this->formerRequeteTri(). |
"LIMIT $depart,$limite "; |
' 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 '. |
(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) '. |
$this->formerRequeteConditions($numNomListe).' '. |
'GROUP BY id_img '. |
$this->formerRequeteTri(). |
"LIMIT $depart,$limite "; |
|
$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') { |
331,7 → 321,7 |
} |
|
private function formerRequeteTri() { |
$order = ""; |
$order = ''; |
if (isset($this->parametres['retour.tri']) && $this->parametres['retour.tri'] == 'date') { |
$order = ' ORDER BY ci.ci_meta_date ASC '; |
} |
338,7 → 328,6 |
return $order; |
} |
|
|
private function chargerNbreImagesTotal() { |
$requete = 'SELECT FOUND_ROWS() AS nbre '; |
$resultats = $this->Bdd->recuperer($requete); |
345,7 → 334,6 |
$this->nbreImages = (int) $resultats['nbre']; |
} |
|
|
//+---------------------------------------CHEMIN ET CONVERSION--------------------------------------------------------+ |
private function recupererImageBinaire($id_image) { |
$image = ''; |
386,7 → 374,6 |
return $codeImage; |
} |
|
|
//+------------------------------------FORMATAGE LISTE----------------------------------------------------------------+ |
private function formaterListeImages() { |
$entete = $this->construireEntete(); |
456,7 → 443,7 |
|
private function construireResultats() { |
$resultats = array(); |
$this->extraireIntitulesAuteurs(); |
$this->extraireIdentitesAuteurs(); |
foreach ($this->infosImages as $img) { |
$info = $this->formaterInfosImage($img); |
$id = $img['id_img']; |
474,8 → 461,8 |
$info = array(); |
$info['date'] = $img['date']; |
$info['mime'] = self::MIME_JPEG; |
$info['auteur'] = $this->formaterAuteur($img); |
$info['auteur.id'] = $img['utilisateur_id']; |
$info['auteur.libelle'] = $this->Utilisateurs->getIntitule($img['utilisateur_courriel']); |
$info['auteur.id'] = $this->Utilisateurs->getId($img['utilisateur_courriel']); |
$info['binaire.href'] = $this->formaterUrlImage($img); |
if (isset($img['nom_sel'])) { |
$info['determination.libelle'] = $this->formaterDetermination($img); |
486,13 → 473,13 |
return $info; |
} |
|
private function extraireIntitulesAuteurs() { |
private function extraireIdentitesAuteurs() { |
$courriels = array(); |
foreach ($this->infosImages as $img) { |
$courriels[] = $img['utilisateur_courriel']; |
} |
$utilisateurs = new Utilisateurs($courriels); |
$this->intitulesAuteurs = $utilisateurs->getIntitules(); |
$this->Utilisateurs->setCourriels($courriels); |
$this->Utilisateurs->chargerIdentites(); |
} |
|
private function formaterUrlImage($infos) { |
503,7 → 490,8 |
} |
|
private function formaterDetermination($infos) { |
return $infos['nom_sel'].'[Dét. : '.$this->intitulesAuteurs[$infos['utilisateur_courriel']].']'; |
$auteur = $this->Utilisateurs->getIntitule($infos['utilisateur_courriel']); |
return $infos['nom_sel']."[Dét. : $auteur]"; |
} |
|
private function formaterNomSciCode($infos) { |
542,11 → 530,6 |
return implode(' ', $commune); |
} |
|
private function formaterAuteur($infos) { |
$auteur = $this->intitulesAuteurs[$infos['utilisateur_courriel']]; |
return $auteur; |
} |
|
private function avoirContenu($info) { |
$vide = true; |
if ($info == null || $info == '' || $info == '000null') { |