Rev 1000 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?phpClass 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 $_GETif (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;}}?>