Rev 1391 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel ///*** PHP Version 5** @category PHP* @package papyrus_bp* @author aurelien <aurelien@tela-botanica.org>* @copyright 2010 Tela-Botanica* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL* @version SVN: <svn_id>* @link /doc/papyrus_bp/*//*** Classe renvoyant un petit bout de json contenant les dernières obs publiques d'un utilisateur* Utilisée par l'annuaire appelant les web services résumé de chaque application**/class Resume extends Cel {function getElement($uid){$requete_dernieres_obs = 'SELECT * FROM cel_obs'.' WHERE ce_utilisateur = '.$this->proteger($uid[1]).' AND transmission = 0'.' ORDER BY date_modification DESC LIMIT 0,5';$resultat_dernieres_obs = $this->requeter($requete_dernieres_obs);$dernieres_obs = array();$resume = array();if (is_array($resultat_dernieres_obs)) {$dernieres_obs = $resultat_dernieres_obs;}$resume['titre'] = 'Vos dernières observations publiées';$resume['lien_appli'] = '<a href="www.tela-botanica.org/appli:cel2"> Accéder au carnet en ligne </a>';if (count($dernieres_obs) == 0) {$resume['message'] = 'Aucune observation saisie pour le moment';}foreach ($dernieres_obs as $obs) {$chemin_sur_serveur = $this->config['cel']['url_images'];$date = 'Datée du '.$obs['date_modification'].'<br/>' ;$lieu = 'Lieu : '.trim($obs['zone_geo'],'000null').' ('.$this->convertirCodeZoneGeoVersDepartement(trim($obs['ce_zone_geo']),'000null').') '.trim($obs['station'],'000null').' '.trim($obs['lieudit'],'000null').'<br/>' ;$image ='';$cible_lien = '';$req_liaison = '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'].'"' ;$res_liaison = $this->requeter($req_liaison);$ligne_image = null;foreach ($res_liaison as $img) {$row = $img;}if($row != null) {$row['nom_original'] = htmlspecialchars($row['nom_original']);$row['id_image'] = htmlspecialchars($row['id_image']);$id = $row['id_image'];$tailleXY = $this->calculerDimensions(array($row['largeur'], $row['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" ;$image = '<img src="'.$chemin_fichier_s.'" alt="'.$row['nom_original'].'" height="'.$tailleXY[1].'px" width="'.$tailleXY[0].'px"></img>';$cible_lien = $chemin_fichier;}$resume_item = array('element' => $obs['nom_ret'].$date.$lieu, 'lien' => $cible_lien,'image' => $image);$resume['elements'][] = $resume_item;}$this->envoyerJson($resume);return true;}public 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 ;}}?>