Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 998 → Rev 999

/branches/v1.5-cisaille/jrest/services/CelEfloreImages.php
New file
0,0 → 1,81
<?php
 
Class CelEfloreImages extends Cel {
function getElement($uid) {
return getRessource();
}
function getRessource(){
$parametres = $this->recupererParametresBruts();
$num_nom = $parametres['masque.nn'];
$retour = isset($parametres['retour']) ? $parametres['retour'] : 'image/jpeg';
$format = isset($parametres['retour.format']) ? $parametres['retour.format'] : 'M';
$dimensions = $this->config['cel_db']['format_'.$format];
$generateur_image = new ImageRecreation($this->config);
$id_image = $this->obtenirImageAuHasardPourNN($num_nom);
$infos_image = $generateur_image->obtenirImageEtInfosPourId($id_image);
if(!$infos_image) {
header('HTTP/1.0 404 Not Found');
exit;
}
$image_generee = $generateur_image->creerMiniatureImageSelonFormat($infos_image, $format);
header('Content-type: '.$retour);
imagejpeg($image_generee);
exit;
}
private function obtenirImageAuHasardPourNN($numero_nomenclatural) {
// Construction de la requête
$requete = 'SELECT cim.ci_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_images AS cim '.
'ON (coi.coi_ce_image = cim.ci_id_image AND coi.coi_ce_utilisateur = cim.ci_ce_utilisateur) '.
'WHERE ci.transmission = 1 '.
' AND num_nom_sel = '.$this->proteger($numero_nomenclatural).
' AND ci.identifiant = cim.ci_ce_utilisateur ';
$resultat_images = $this->executerRequete($requete);
//TODO que faire si pas de résultat ?
$id_image_hasard = $resultat_images[array_rand($resultat_images)]['id_image'];
return $id_image_hasard;
}
private function nettoyerParametres(Array $parametres) {
// Pas besoin d'utiliser urldecode car déjà fait par php pour les clés et valeur de $_GET
if (isset($parametres) && count($parametres) > 0) {
foreach ($parametres as $cle => $valeur) {
$verifier = array('NULL', "\n", "\r", "\\", "'", '"', "\x00", "\x1a", ';');
$parametres[$cle] = strip_tags(str_replace($verifier, '', $valeur));
}
}
return $parametres;
}
private function recupererParametresBruts() {
$parametres_bruts = array();
if (!empty($_SERVER['QUERY_STRING'])) {
$paires = explode('&', $_SERVER['QUERY_STRING']);
foreach ($paires as $paire) {
$nv = explode('=', $paire);
$nom = urldecode($nv[0]);
$valeur = urldecode($nv[1]);
$parametres_bruts[$nom] = $valeur;
}
$parametres_bruts = $this->nettoyerParametres($parametres_bruts);
}
return $parametres_bruts;
}
}
 
?>