Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 329 → Rev 330

/trunk/services/modules/0.1/cel/Images.php
29,6 → 29,7
private $config = array();
private $cheminImagesBase = '';
private $formats_supportes = array(self::MIME_JPEG, self::MIME_JSON);
private $tris_supportes = array('date');
private $ref_tax_demande = array();
private $infosImages = array();
private $nbreImages = 0;
55,7 → 56,11
 
$resultat = new ResultatService();
if ($this->parametres['retour'] == self::MIME_JPEG) {
$id_image_a_renvoyer = $this->obtenirIdImageAuHasard();
if ($this->parametres['retour.tri'] == 'date') {
$id_image_a_renvoyer = $this->obtenirIdPremiereImage();
} else {
$id_image_a_renvoyer = $this->obtenirIdImageAuHasard();
}
$resultat->corps = $this->recupererImageBinaire($id_image_a_renvoyer);
} else if ($this->parametres['retour'] == self::MIME_JSON) {
$this->chargerListeImages();
108,6 → 113,11
if ($this->verifierValeurParametreFormat() == false) {
$erreurs[] = "Le type de format '{$this->parametres['retour.format']}' n'est pas supporté";
}
if (isset($this->parametres['retour.tri'])){
if ($this->verifierValeurParametreTri() == false) {
$erreurs[] = "Le type de tri '{$this->parametres['retour.tri']}' n'est pas supporté";
}
}
if ($this->verifierValeurParametreNavigationDepart() == false) {
$erreurs[] = "Le paramètre 'navigation.depart' doit possèder un valeur numérique.";
}
150,6 → 160,10
$ok = array_key_exists($this->parametres['retour.format'], $formats);
return $ok;
}
private function verifierValeurParametreTri() {
return in_array($this->parametres['retour.tri'], $this->tris_supportes);
}
 
private function verifierValeurParametreNavigationDepart() {
$depart = $this->parametres['navigation.depart'];
191,7 → 205,7
' LEFT JOIN cel_inventory AS ci '.
'ON (coi.coi_ce_observation = ci.ordre AND coi.coi_ce_utilisateur = ci.identifiant) '.
'WHERE ci.transmission = 1 '.
" AND ci.num_nom_ret IN ($numNom) ";
" AND ci.num_nom_ret IN ($numNom)";
 
$resultat = $this->Bdd->recupererTous($requete);
 
204,6 → 218,31
$id_image_hasard = $resultat[array_rand($resultat)]['id_image'];
return $id_image_hasard;
}
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 '.
'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 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';
$resultat = $this->Bdd->recupererTous($requete);
if (!is_array($resultat) || count($resultat) <= 0) {
$message = "Aucune image ne correspond au numéro numenclatural $refTax:$numNom";
$code = RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE;
throw new Exception($message, $code);
}
$id_image_hasard = $resultat[0]['id_image'];
return $id_image_hasard;
}
 
private function recupererImageBinaire($id_image) {
$image = '';