Rev 761 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?phpClass InventoryImageListPublic extends DBAccessor {private $start = 0;private $limit = 50;private $distinct = true;private $criteres = array('mot_cles' => 'c.ci_meta_mots_cles','auteur' => 'c.ci_ce_utilisateur','commune' => 'b.location','departement' => 'b.id_location','taxon' => 'b.nom_ret');function InventoryImageListPublic($config) {$this->config=$config;}function getRessource() {}function getElement($uid){// uid[0] : utilisateur obligatoire// uid[1] : critères de filtrage de la forme critère1:valeur1;critère2:valeur2$DB=$this->connectDB($this->config,'cel_db');$criteres = array() ;if($uid[0] != '*') {$criteres[$this->criteres['auteur']] = $uid[0];}$criteres = $this->traiterCriteres($_GET) ;// Construction de la requête$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' * '.'FROM cel_obs_images a '.'INNER JOIN cel_inventory b '.'ON a.coi_ce_observation = b.ordre AND a.coi_ce_utilisateur = b.identifiant '.'INNER JOIN cel_images c '.'ON a.coi_ce_image = c.ci_id_image AND a.coi_ce_utilisateur = c.ci_ce_utilisateur '.'WHERE b.transmission = 1 AND b.identifiant = c.ci_ce_utilisateur AND ';$numero_page = 0 ;$limite = 50 ;foreach($criteres as $pair){$nom_valeur = explode("=",$pair) ;if(sizeof($nom_valeur) != 0){if($nom_valeur[0] == "ci_limite"){$this->limite = $DB->escapeSimple($nom_valeur[1]) ;}elseif($nom_valeur[0] == "c.ci_numero_page"){$this->start = $this->limite*$DB->escapeSimple($nom_valeur[1]) ;}elseif($nom_valeur[0] == "c.ci_meta_mots_cles"){$mots_cles = rtrim($nom_valeur[1], ',') ;$mots_cles_liste = explode("," , $mots_cles) ;foreach($mots_cles_liste as $mot_cle){$requete .= $nom_valeur[0].' LIKE "%'.$DB->escapeSimple($mot_cle).'%"' ;$requete .= ' AND ' ;}}elseif($nom_valeur[0] == "c.ci_meta_comment"){$mots_comment_liste = explode(" " , $nom_valeur[1]) ;foreach($mots_comment_liste as $mot_comment){$mot_comment = trim($mot_comment) ;$requete .= $nom_valeur[0].' LIKE "%'.$DB->escapeSimple($mot_comment).'%"' ;$requete .= ' AND ' ;}}elseif($nom_valeur[0] == "c.ci_meta_date"){$requete .= 'DATE_FORMAT( '.$nom_valeur[0].', \'%Y-%m-%d\' ) = "'.$DB->escapeSimple($nom_valeur[1]).'"' ;$requete .= ' AND ' ;}elseif($nom_valeur[0] == "c.ci_id_tampon"){$ids_tampon = rtrim($nom_valeur[1], ',') ;$requete .= 'c.ci_id_image IN ( '.$DB->escapeSimple($ids_tampon).')' ;}else{$requete .= $nom_valeur[0].' = "'.$DB->escapeSimple($nom_valeur[1]) ;$requete .= '" AND ' ;}}}$requete = rtrim($requete,' AND ') ;$requete .= ' ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'c.ci_meta_date_ajout DESC').' ';$requete .= "LIMIT $this->start,$this->limit ";$res =& $DB->query($requete);if (PEAR::isError($res)) {die($res->getMessage());}$images = array();while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {$images[]= $row;}$images_json = json_encode($images) ;header("content-type: text/html") ;print $images_json ;exit() ;}private function traiterCriteres($tableau_criteres) {$tableau_criteres_pour_bdd = array();foreach($tableau_criteres as $nom_critere => $valeur_critere) {if(isset($this->criteres[$nom_critere])) {$tableau_criteres_pour_bdd[] = $this->criteres[$nom_critere].'='.$valeur_critere;}}return $tableau_criteres_pour_bdd;}}?>