* @author Jean-Pascal MILCENT * @author Aurelien PERONNET * @license GPL v3 * @license CECILL v2 * @copyright 1999-2014 Tela Botanica */ 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){ $idUtilisateurP = Cel::db()->proteger($uid[1]); $requete = 'SELECT co.*, ci.id_image, ci.nom_original, ci.largeur, ci.hauteur '. 'FROM cel_obs AS co INNER JOIN cel_images AS ci ON (id_observation = ce_observation) '. "WHERE co.ce_utilisateur = $idUtilisateurP ". 'ORDER BY co.date_modification DESC '. 'LIMIT 0,5 '. ' -- '.__FILE__.':'.__LINE__; $resultats = Cel::db()->requeter($requete); $html = '
'; if ($resultats !== false && is_array($resultats)) { $urlImgTpl = $this->config['settings']['celImgUrlTpl']; foreach ($resultats as $obs) { $nom_ret = (!empty($obs['nom_ret'])) ? $obs['nom_ret'] : 'Indéterminée'; $obs['nom_original'] = htmlspecialchars($obs['nom_original']); $obs['id_image'] = htmlspecialchars($obs['id_image']); $obs['zone_geo'] = trim($obs['zone_geo'],'000null'); $obs['ce_zone_geo'] = trim($obs['ce_zone_geo'],'000null'); $obs['station'] = trim($obs['station'],'000null'); $obs['lieudit'] = trim($obs['lieudit'],'000null'); $id = $obs['id_image']; list($largeur, $hauteur) = $this->calculerDimensions($obs['largeur'], $obs['hauteur']); $id = sprintf('%09s', $id); $urlImgL = sprintf($urlImgTpl, "{$id}L"); $urlImgS = sprintf($urlImgTpl, "{$id}S"); $html .= '
'. '

'.$nom_ret.'

'. ''.$obs['nom_original'].'
'. 'Datée du '.$obs['date_modification'].'
'. 'Lieu : '.$obs['zone_geo'].' ('.$obs['ce_zone_geo'].') '.$obs['station'].' '.$obs['lieudit'].'

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