Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 385 → Rev 386

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