New file |
0,0 → 1,112 |
<?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['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'; |
$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; |
} |
} |
Property changes: |
Added: svnkit:entry:sha1-checksum |
+1cf2d36a44a00cb25dedfb0649397aa96a749e8f |
\ No newline at end of property |