Subversion Repositories eFlore/Applications.cel

Rev

Rev 3667 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3667 Rev 3807
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
		if (!isset($_GET['id_image']) || !is_numeric($_GET['id_image'])) {
15
		if (!isset($_GET['id_image']) || !is_numeric($_GET['id_image'])) {
16
			$this->messages[] = "Ce widget nécéssite un identifiant d'image.";
16
			$this->messages[] = "Ce widget nécéssite un identifiant d'image.";
17
		} else {
17
		} else {
18
			$this->id_image = $_GET['id_image'];
18
			$this->id_image = $_GET['id_image'];
19
		}
19
		}
20
 
20
 
21
		if (!empty($this->messages)) {
21
		if (!empty($this->messages)) {
22
			$contenu = 'Un problème est survenu : '.print_r($this->messages, true);
22
			$contenu = 'Un problème est survenu : '.print_r($this->messages, true);
23
		} else {
23
		} else {
24
			$donnees = $this->obtenirDescriptionFormats();
24
			$donnees = $this->obtenirDescriptionFormats();
25
			$squelette = dirname(__FILE__).'/squelettes'.'/telechargement.tpl.html';
25
			$squelette = dirname(__FILE__).'/squelettes'.'/telechargement.tpl.html';
26
			$donnees['informations_image'] = $this->obtenirInformationsImages();
26
			$donnees['informations_image'] = $this->obtenirInformationsImages();
27
			$donnees['nom_original_fmt'] = $this->formaterNomOriginal($donnees['informations_image']);
27
			$donnees['nom_original_fmt'] = $this->formaterNomOriginal($donnees['informations_image']);
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'] = $this->formaterDateTeleversement($donnees['informations_image']);
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
			$donnees['prod'] = ($this->config['parametres']['modeServeur'] == "prod");
36
			$donnees['prod'] = ($this->config['parametres']['modeServeur'] == "prod");
37
 
37
 
38
			$contenu = $this->traiterSquelettePhp($squelette, $donnees);
38
			$contenu = $this->traiterSquelettePhp($squelette, $donnees);
39
		}
39
		}
40
		$this->envoyer($contenu);
40
		$this->envoyer($contenu);
41
	}
41
	}
42
 
42
 
43
	private function formaterNomOriginal($infos_images) {
43
	private function formaterNomOriginal($infos_images) {
44
		$nom_original = 'Inconnu.jpg';
44
		$nom_original = 'Inconnu.jpg';
45
		if(isset($infos_images['nom_original'])) {
45
		if(isset($infos_images['nom_original'])) {
46
			$nom_original = $infos_images['nom_original'].' ';
46
			$nom_original = $infos_images['nom_original'].' ';
47
		}
47
		}
48
		return $nom_original;
48
		return $nom_original;
49
	}
49
	}
50
 
50
 
51
	private function formaterAttribution($infos_images) {
51
	private function formaterAttribution($infos_images) {
52
		$attr = $this->formaterAuteur($infos_images).' [CC BY-SA 2.0 FR], via Tela Botanica';
52
		$attr = $this->formaterAuteur($infos_images).' [CC BY-SA 2.0 FR], via Tela Botanica';
53
		return $attr;
53
		return $attr;
54
	}
54
	}
55
 
55
 
56
	private function formaterAuteur($infos_images) {
56
	private function formaterAuteur($infos_images) {
57
		$auteur_fmt = '';
57
		$auteur_fmt = '';
58
		if (isset($infos_images['prenom_utilisateur'])) {
58
		if (isset($infos_images['pseudo_utilisateur'])) {
59
			$auteur_fmt .= $infos_images['prenom_utilisateur'].' ';
59
			$auteur_fmt .= $infos_images['pseudo_utilisateur'].' ';
60
		}
-
 
61
 
-
 
62
		if (isset($infos_images['nom_utilisateur'])) {
-
 
63
			$auteur_fmt .= $infos_images['nom_utilisateur'];
-
 
64
		}
60
		}
65
 
61
 
66
		if (trim($auteur_fmt) == '') {
62
		if (trim($auteur_fmt) == '') {
67
			$auteur_fmt = 'Auteur inconnu';
63
			$auteur_fmt = 'Auteur inconnu';
68
		}
64
		}
69
 
65
 
70
		return trim($auteur_fmt);
66
		return trim($auteur_fmt);
71
	}
67
	}
72
 
68
 
73
	private function formaterResolutionOriginale($infos_image) {
69
	private function formaterResolutionOriginale($infos_image) {
74
		$res_fmt = '';
70
		$res_fmt = '';
75
		if (isset($infos_image['hauteur']) && isset($infos_image['largeur'])) {
71
		if (isset($infos_image['hauteur']) && isset($infos_image['largeur'])) {
76
			$res_fmt = $infos_image['hauteur'].' x '.$infos_image['largeur'].' px';
72
			$res_fmt = $infos_image['hauteur'].' x '.$infos_image['largeur'].' px';
77
		} else {
73
		} else {
78
			$res_fmt = 'Taille inconnue';
74
			$res_fmt = 'Taille inconnue';
79
		}
75
		}
80
		return $res_fmt;
76
		return $res_fmt;
81
	}
77
	}
82
 
78
 
83
	private function formaterDateTeleversement($infos_image) {
79
	private function formaterDateTeleversement($infos_image) {
84
		$date = 'Date inconnue';
80
		$date = 'Date inconnue';
85
		if (isset($infos_image['date_creation'])) {
81
		if (isset($infos_image['date_creation'])) {
86
			$date = date('d/m/Y', strtotime($infos_image['date_creation']));
82
			$date = date('d/m/Y', strtotime($infos_image['date_creation']));
87
		}
83
		}
88
		return $date;
84
		return $date;
89
	}
85
	}
90
 
86
 
91
	private function obtenirDescriptionFormats() {
87
	private function obtenirDescriptionFormats() {
92
		$this->description_url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImageFormat');
88
		$this->description_url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImageFormat');
93
		$description = json_decode(file_get_contents($this->description_url), true);
89
		$description = json_decode(file_get_contents($this->description_url), true);
94
 
90
 
95
		return $description;
91
		return $description;
96
	}
92
	}
97
 
93
 
98
	private function obtenirInformationsImages() {
94
	private function obtenirInformationsImages() {
99
		$this->infos_images_url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImage');
95
		$this->infos_images_url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImage');
100
		$infos = json_decode(file_get_contents($this->infos_images_url."/image?imgId=".$this->id_image), true);
96
		$infos = json_decode(file_get_contents($this->infos_images_url."/image?imgId=".$this->id_image), true);
101
		return $infos;
97
		return $infos;
102
	}
98
	}
103
 
99
 
104
	public static function obtenirLegendeFormatSimplifiee($format) {
100
	public static function obtenirLegendeFormatSimplifiee($format) {
105
		$legende = '';
101
		$legende = '';
106
		if (strpos($format, 'CR') !== false) {
102
		if (strpos($format, 'CR') !== false) {
107
			$legende = '(Carrée, rognée)';
103
			$legende = '(Carrée, rognée)';
108
		}
104
		}
109
		if (strpos($format, 'C') !== false && strpos($format, 'R') === false) {
105
		if (strpos($format, 'C') !== false && strpos($format, 'R') === false) {
110
			$legende = '(Carrée)';
106
			$legende = '(Carrée)';
111
		}
107
		}
112
		return $legende;
108
		return $legende;
113
	}
109
	}
114
}
110
}