* @copyright 2010 Tela-Botanica * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL * @version SVN: * @link /doc/jrest/ */ /** * Classe renvoyant une liste très succinte des observations liées à une image de l'utilisateur * */ class ImageContribution extends Cel { /** * Renvoi un petit bout de html contenant les dernières obs liées à * une image d'un utilisateur * * @param string $uid[0] mail de l'utilisateur * @param string $uid[1] identifiant numérique de l'utilisateur */ function getElement($uid){ $requete_obs_liee_images = 'SELECT * FROM cel_obs'. ' WHERE ce_utilisateur = '.Cel::db()->proteger($uid[1]). ' AND id_observation IN (SELECT id_observation FROM cel_obs_images WHERE id_utilisateur = '.Cel::db()->proteger($uid[1]).' )'. ' AND transmission = 0'. ' ORDER BY date_modification DESC LIMIT 0,5'; $html = '
'; $obs_liees_images = array(); $resultat_obs_liees_images = Cel::db()->requeter($requete_obs_liee_images); if(is_array($resultat_obs_liees_images)) { $obs_liees_images = $resultat_obs_liees_images; } foreach ($obs_liees_images as $obs) { $chemin_sur_serveur = $this->config['cel']['url_images']; $requete_img_liees = 'SELECT * FROM cel_images WHERE id_image '. 'IN (SELECT id_image FROM cel_obs_images '. 'WHERE id_observation = "'.$obs['id_observation'].'") '. 'AND ce_utilisateur = "'.$obs['ce_utilisateur'].'"' ; $resultat_requete_img_liees = Cel::db()->requeter($requete_img_liees); if (is_array($resultat_requete_img_liees) && count($resultat_requete_img_liees) > 0) { $premiere_image_liee = $resultat_requete_img_liees[0]; $premiere_image_liee['nom_original'] = htmlspecialchars($premiere_image_liee['nom_original']); $premiere_image_liee['id_image'] = htmlspecialchars($premiere_image_liee['id_image']); $id = $premiere_image_liee['id_image']; $tailleXY = $this->calculerDimensions(array($premiere_image_liee['largeur'], $premiere_image_liee['hauteur'])); $id = sprintf('%09s', $id) ; $id = wordwrap($id, 3 , '_', true) ; $id_fichier = $id.".jpg" ; $niveauDossier = explode("_", $id) ; $dossierNiveau1 = $niveauDossier[0] ; $dossierNiveau2 = $niveauDossier[1] ; $chemin_sur_serveur_final = $chemin_sur_serveur.'/'.$dossierNiveau1.'/'.$dossierNiveau2 ; $chemin_fichier = $chemin_sur_serveur_final.'/L/'.$id."_L.jpg" ; $chemin_fichier_s = $chemin_sur_serveur_final.'/M/'.$id."_M.jpg" ; $html .= '
'; $html .= '

'.$obs['nom_ret'].'

'. ''.$premiere_image_liee['nom_original'].'
'; $html .= 'Datée du '.$obs['date_modification'].'
' ; $html .= 'Lieu : '.trim($obs['zone_geo'],'000null').' ('.trim($obs['ce_zone_geo'],'000null').') '.trim($obs['station'],'000null').' '.trim($obs['lieudit'],'000null').'

' ; $html .= '
'; $html .= '
'; } } $html.= '
'; header("Content-Type: text/html; charset=UTF-8"); print $html; exit; } private function calculerDimensions($tailleXY) { $tailleOr = 75 ; if($tailleXY[1] == 0) { $tailleXY[1] = $tailleOr; } if($tailleXY[0] == 0) { $tailleXY[0] = $tailleOr; } $maxTaille = max($tailleXY[1],$tailleXY[0]) ; if($maxTaille == $tailleXY[1]) { $rapport = $tailleXY[1]/$tailleXY[0] ; $tailleXY[1] = 75 ; $tailleXY[0] = round($tailleXY[1]/$rapport,0) ; }else { $rapport = $tailleXY[0]/$tailleXY[1] ; $tailleXY[0] = 75 ; $tailleXY[1] = round($tailleXY[0]/$rapport,0) ; } return $tailleXY ; } } ?>