Rev 2216 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// declare(encoding='UTF-8');class Telechargement extends WidgetCommun {private $description_url = null;private $infos_images_url = null;private $telechargement_url = null;private $id_image = null;/*** Méthode appelée par défaut pour charger ce widget.*/public function executer() {if(!isset($_GET['id_image']) || !is_numeric($_GET['id_image'])) {$this->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['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';$contenu = $this->traiterSquelettePhp($squelette, $donnees);}$this->envoyer($contenu);}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;}}?>