* @copyright 2010 Tela-Botanica * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL * @version SVN: * @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 = '.Cel::db()->proteger($uid[1]). ' AND transmission = 0'. ' ORDER BY date_modification DESC LIMIT 0,5'; $resultat_dernieres_obs = Cel::db()->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'] = ' Accéder au carnet en ligne '; 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'].'
' ; $lieu = 'Lieu : '.trim($obs['zone_geo'],'000null').' ('.$this->convertirCodeZoneGeoVersDepartement(trim($obs['ce_zone_geo']),'000null').') '.trim($obs['station'],'000null').' '.trim($obs['lieudit'],'000null').'
' ; $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 = Cel::db()->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 = ''.$row['nom_original'].''; $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 ; } } ?>