Subversion Repositories eFlore/Applications.cel

Rev

Rev 2207 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2207 Rev 2216
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
class Telechargement extends WidgetCommun {
3
class Telechargement extends WidgetCommun {
4
	
4
	
5
	private $description_url = null; 
5
	private $description_url = null; 
6
	private $infos_images_url = null;
6
	private $infos_images_url = null;
7
	private $telechargement_url = null;
7
	private $telechargement_url = null;
8
	
8
	
9
	private $id_image = null;
9
	private $id_image = null;
10
	
10
	
11
	/**
11
	/**
12
	 * Méthode appelée par défaut pour charger ce widget.
12
	 * Méthode appelée par défaut pour charger ce widget.
13
	 */
13
	 */
14
	public function executer() {
14
	public function executer() {
15
		
15
		
16
		if(!isset($_GET['id_image']) || !is_numeric($_GET['id_image'])) {
16
		if(!isset($_GET['id_image']) || !is_numeric($_GET['id_image'])) {
17
			$this->messages[] = "Ce widget nécéssite un identifiant d'image.";
17
			$this->messages[] = "Ce widget nécéssite un identifiant d'image.";
18
		} else {
18
		} else {
19
			$this->id_image = $_GET['id_image'];
19
			$this->id_image = $_GET['id_image'];
20
		}
20
		}
21
		
21
		
22
		if(!empty($this->messages)) {
22
		if(!empty($this->messages)) {
23
			$contenu = 'Un problème est survenu : '.print_r($this->messages, true);
23
			$contenu = 'Un problème est survenu : '.print_r($this->messages, true);
24
		} else {	
24
		} else {	
25
			$donnees = $this->obtenirDescriptionFormats();
25
			$donnees = $this->obtenirDescriptionFormats();
26
			$squelette = dirname(__FILE__).'/squelettes'.'/telechargement.tpl.html';
26
			$squelette = dirname(__FILE__).'/squelettes'.'/telechargement.tpl.html';
27
			$donnees['informations_image'] = $this->obtenirInformationsImages();
27
			$donnees['informations_image'] = $this->obtenirInformationsImages();
28
			$donnees['resolution_originale'] = $this->formaterResolutionOriginale($donnees['informations_image']);
28
			$donnees['resolution_originale'] = $this->formaterResolutionOriginale($donnees['informations_image']);
29
			$donnees['auteur_fmt'] = $this->formaterAuteur($donnees['informations_image']);
29
			$donnees['auteur_fmt'] = $this->formaterAuteur($donnees['informations_image']);
30
			$donnees['attribution'] = $this->formaterAttribution($donnees['informations_image']);
30
			$donnees['attribution'] = $this->formaterAttribution($donnees['informations_image']);
31
			$donnees['url_base'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], '');
31
			$donnees['url_base'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], '');
32
			$donnees['date_televersement'] = date("d/m/Y",strtotime($donnees['informations_image']['date_creation']));
32
			$donnees['date_televersement'] = $this->formaterDateTeleversement($donnees['informations_image']);
33
			$donnees['url_image_exemple'] = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImageFormat').'/'.$this->id_image.'?methode=afficher&format=CS';	
33
			$donnees['url_image_exemple'] = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImageFormat').'/'.$this->id_image.'?methode=afficher&format=CS';	
34
			$donnees['url_image_originale'] = sprintf($this->config['chemins']['celImgUrlTpl'], str_pad($this->id_image, 9, "0", STR_PAD_LEFT).'O');
34
			$donnees['url_image_originale'] = sprintf($this->config['chemins']['celImgUrlTpl'], str_pad($this->id_image, 9, "0", STR_PAD_LEFT).'O');
35
			$donnees['base_url_telechargement'] = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImageFormat').'/'.$this->id_image.'?methode=telecharger&format=%s';	
35
			$donnees['base_url_telechargement'] = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImageFormat').'/'.$this->id_image.'?methode=telecharger&format=%s';	
36
			$contenu = $this->traiterSquelettePhp($squelette, $donnees);
36
			$contenu = $this->traiterSquelettePhp($squelette, $donnees);
37
		}
37
		}
38
			
38
			
39
		$this->envoyer($contenu);
39
		$this->envoyer($contenu);
40
	}
40
	}
41
	
41
	
42
	private function formaterAttribution($infos_images) {
42
	private function formaterAttribution($infos_images) {
43
		$attr = $this->formaterAuteur($infos_images).' '.
43
		$attr = $this->formaterAuteur($infos_images).' '.
44
				'[CC BY-SA], via Tela Botanica';
44
				'[CC BY-SA], via Tela Botanica';
45
		
45
		
46
		return $attr;
46
		return $attr;
47
	}
47
	}
48
	
48
	
49
	private function formaterAuteur($infos_images) {
49
	private function formaterAuteur($infos_images) {
50
		$auteur_fmt = "";
50
		$auteur_fmt = "";
51
		if(isset($infos_images['prenom_utilisateur'])) {
51
		if(isset($infos_images['prenom_utilisateur'])) {
52
			$auteur_fmt .= $infos_images['prenom_utilisateur'].' ';
52
			$auteur_fmt .= $infos_images['prenom_utilisateur'].' ';
53
		}
53
		}
54
		
54
		
55
		if(isset($infos_images['nom_utilisateur'])) {
55
		if(isset($infos_images['nom_utilisateur'])) {
56
			$auteur_fmt .= $infos_images['nom_utilisateur'];
56
			$auteur_fmt .= $infos_images['nom_utilisateur'];
57
		}
57
		}
58
		
58
		
59
		if(trim($auteur_fmt) == "") {
59
		if(trim($auteur_fmt) == "") {
60
			$auteur_fmt = 'Auteur inconnu';
60
			$auteur_fmt = 'Auteur inconnu';
61
		}
61
		}
62
		
62
		
63
		return trim($auteur_fmt);
63
		return trim($auteur_fmt);
64
	}
64
	}
65
	
65
	
66
	private function formaterResolutionOriginale($infos_image) {
66
	private function formaterResolutionOriginale($infos_image) {
67
		$res_fmt = "";
67
		$res_fmt = "";
68
		if(isset($infos_image['hauteur']) && isset($infos_image['largeur'])) {
68
		if(isset($infos_image['hauteur']) && isset($infos_image['largeur'])) {
69
			$res_fmt = $infos_image['hauteur'].' x '.$infos_image['largeur'].' px';
69
			$res_fmt = $infos_image['hauteur'].' x '.$infos_image['largeur'].' px';
70
		} else {
70
		} else {
71
			$res_fmt = 'Taille inconnue';
71
			$res_fmt = 'Taille inconnue';
72
		}
72
		}
73
		
73
		
74
		return $res_fmt;
74
		return $res_fmt;
75
	}
75
	}
-
 
76
	
-
 
77
	private function formaterDateTeleversement($infos_image) {
-
 
78
		$date = "Date inconnue";
-
 
79
		if(isset($infos_image['date_creation'])) {
-
 
80
			$date = date("d/m/Y",strtotime($infos_image['date_creation']));
-
 
81
		}
-
 
82
		return $date;
-
 
83
	}
76
	
84
	
77
	private function obtenirDescriptionFormats() {
85
	private function obtenirDescriptionFormats() {
78
		$this->description_url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImageFormat');
86
		$this->description_url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImageFormat');
79
		$description = json_decode(file_get_contents($this->description_url), true);
87
		$description = json_decode(file_get_contents($this->description_url), true);
80
		
88
		
81
		return $description;
89
		return $description;
82
	}
90
	}
83
	
91
	
84
	private function obtenirInformationsImages() {
92
	private function obtenirInformationsImages() {
85
		$this->infos_images_url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImage');
93
		$this->infos_images_url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImage');
86
		$infos = json_decode(file_get_contents($this->infos_images_url."/image?imgId=".$this->id_image), true);
94
		$infos = json_decode(file_get_contents($this->infos_images_url."/image?imgId=".$this->id_image), true);
87
		return $infos;
95
		return $infos;
88
	}
96
	}
89
	
97
	
90
	public static function obtenirLegendeFormatSimplifiee($format) {
98
	public static function obtenirLegendeFormatSimplifiee($format) {
91
		$legende = "";
99
		$legende = "";
92
		if(strpos($format, 'CR') !== false) {
100
		if(strpos($format, 'CR') !== false) {
93
			$legende = "(Carrée, rognée)";
101
			$legende = "(Carrée, rognée)";
94
		}
102
		}
95
		
103
		
96
		if(strpos($format, 'C') !== false && strpos($format, 'R') === false) {
104
		if(strpos($format, 'C') !== false && strpos($format, 'R') === false) {
97
			$legende = "(Carrée)";
105
			$legende = "(Carrée)";
98
		}
106
		}
99
		
107
		
100
		return $legende;
108
		return $legende;
101
	}
109
	}
102
}
110
}
103
?>
111
?>