* @author Jean-Pascal MILCENT * @author Aurelien PERONNET * @license GPL v3 * @license CECILL v2 * @copyright 1999-2014 Tela Botanica */ class ImageRDF extends Cel { /** * Recherche des images associee au numero nomenclatural * @param numeric $uid [0] : numero nomenclatural obligatoire , $uid[1] (optionnel) : taille image : S , M, L (default) */ public function getElement($uid){ $nomSelNnP = Cel::db()->proteger($uid[0]); $taille = isset($uid[1]) ? $uid[1] : 'L'; // Recherche de toutes les observations transmises du taxon pour lesquelles une photo est associee. $requete = 'SELECT co.id_observation, co.nom_sel, co.ordre, '. ' co.prenom_utilisateur, co.nom_utilisateur, co.courriel_utilisateur, '. ' co.zone_geo, .co.ce_zone_geo, co.date_observation, '. ' ci.id_image, ci.nom_original '. 'FROM cel_obs AS co INNER JOIN cel_images AS ci ON (co.id_observation = ci.ce_observation) '. "WHERE co.nom_sel_nn = $nomSelNnP ". 'AND co.transmission = 1 '. ' -- '.__FILE__.':'.__LINE__; //echo $requete; $resultats = Cel::db()->requeter($requete); $auteursEmails = array(); $donnees = array(); if ($resultats !== false && is_array($resultats)) { $urlImgTpl = $this->config['settings']['celImgUrlTpl']; foreach ($resultats as $picture) { $id = sprintf('%09s', $picture['id_image']) ; $dateObsTimestamp = $this->convertirDateHeureMysqlEnTimestamp($picture['date_observation']); $auteursEmails[] = $picture['courriel_utilisateur']; $data = array(); $data['url_img'] = sprintf($urlImgTpl, $id.$taille); $data['id_image'] = $picture['id_image']; $data['guid'] = 'urn:lsid:tela-botanica.org:celpic:'.$data['id_image']; $data['nom_original'] = $picture['nom_original']; $data['id_observation'] = $picture['id_observation']; $data['nom_sel'] = $picture['nom_sel']; $data['ordre'] = $picture['ordre']; $data['zone_geo'] = utf8_decode($picture['zone_geo']); $data['ce_zone_geo'] = $picture['ce_zone_geo']; $data['ce_zone_geo'] = $picture['ce_zone_geo']; $data['courriel_utilisateur'] = $picture['courriel_utilisateur']; $data['date_observation'] = ($dateObsTimestamp != 0) ? date('d/m/Y', $dateObsTimestamp) : null; $donnees[] = $data; } } $auteursIntitules = $this->creerAuteurs($auteursEmails); $xml = $this->formaterRdf($donnees, $auteursIntitules); // Envoi du xml au navigateur header("Content-Type: text/xml"); echo utf8_encode(str_replace(' & ', ' & ', $xml)); } private function formaterRdf($donnees, $auteurs) { $xml = ''."\n". ''."\n"; if (count($donnees) > 0) { foreach ($donnees as $data) { $intituleAuteur = $auteurs[$data['courriel_utilisateur']]; $xml .= '