messages[] = "Ce widget nécéssite un identifiant d'image."; } else { $this->id_image = $_GET['id_image']; } if (!empty($this->messages)) { $contenu = 'Un problème est survenu : '.print_r($this->messages, true); } else { $donnees = $this->obtenirDescriptionFormats(); $squelette = dirname(__FILE__).'/squelettes'.'/telechargement.tpl.html'; $donnees['informations_image'] = $this->obtenirInformationsImages(); $donnees['nom_original_fmt'] = $this->formaterNomOriginal($donnees['informations_image']); $donnees['resolution_originale'] = $this->formaterResolutionOriginale($donnees['informations_image']); $donnees['auteur_fmt'] = $this->formaterAuteur($donnees['informations_image']); $donnees['attribution'] = $this->formaterAttribution($donnees['informations_image']); $donnees['url_base'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], ''); $donnees['date_televersement'] = $this->formaterDateTeleversement($donnees['informations_image']); $donnees['url_image_exemple'] = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImageFormat').'/'.$this->id_image.'?methode=afficher&format=CS'; $donnees['url_image_originale'] = sprintf($this->config['chemins']['celImgUrlTpl'], str_pad($this->id_image, 9, "0", STR_PAD_LEFT).'O'); $donnees['base_url_telechargement'] = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImageFormat').'/'.$this->id_image.'?methode=telecharger&format=%s'; $donnees['prod'] = ($this->config['parametres']['modeServeur'] == "prod"); $contenu = $this->traiterSquelettePhp($squelette, $donnees); } $this->envoyer($contenu); } private function formaterNomOriginal($infos_images) { $nom_original = 'Inconnu.jpg'; if(isset($infos_images['nom_original'])) { $nom_original = $infos_images['nom_original'].' '; } return $nom_original; } private function formaterAttribution($infos_images) { $attr = $this->formaterAuteur($infos_images).' [CC BY-SA], via Tela Botanica'; return $attr; } private function formaterAuteur($infos_images) { $auteur_fmt = ''; if (isset($infos_images['prenom_utilisateur'])) { $auteur_fmt .= $infos_images['prenom_utilisateur'].' '; } if (isset($infos_images['nom_utilisateur'])) { $auteur_fmt .= $infos_images['nom_utilisateur']; } if (trim($auteur_fmt) == '') { $auteur_fmt = 'Auteur inconnu'; } return trim($auteur_fmt); } private function formaterResolutionOriginale($infos_image) { $res_fmt = ''; if (isset($infos_image['hauteur']) && isset($infos_image['largeur'])) { $res_fmt = $infos_image['hauteur'].' x '.$infos_image['largeur'].' px'; } else { $res_fmt = 'Taille inconnue'; } return $res_fmt; } private function formaterDateTeleversement($infos_image) { $date = 'Date inconnue'; if (isset($infos_image['date_creation'])) { $date = date('d/m/Y', strtotime($infos_image['date_creation'])); } return $date; } private function obtenirDescriptionFormats() { $this->description_url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImageFormat'); $description = json_decode(file_get_contents($this->description_url), true); return $description; } private function obtenirInformationsImages() { $this->infos_images_url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImage'); $infos = json_decode(file_get_contents($this->infos_images_url."/image?imgId=".$this->id_image), true); return $infos; } public static function obtenirLegendeFormatSimplifiee($format) { $legende = ''; if (strpos($format, 'CR') !== false) { $legende = '(Carrée, rognée)'; } if (strpos($format, 'C') !== false && strpos($format, 'R') === false) { $legende = '(Carrée)'; } return $legende; } }