Subversion Repositories eFlore/Applications.eflore-consultation

Rev

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

Rev 1577 Rev 1578
1
<script type="text/javascript">
1
<script type="text/javascript">
2
<!--
2
<!--
3
   var urls = [<?= '"'.implode($urls, '","').'"'; ?>]; 
3
   var urls = [<?= '"'.implode($urls, '","').'"'; ?>]; 
4
   var ids = [<?= '"'.implode($ids, '","').'"'; ?>]; 
4
   var ids = [<?= '"'.implode($ids, '","').'"'; ?>]; 
5
   var meta = new Array();
5
   var meta = new Array();
6
   var indexImage = 0;
6
   var indexImage = 0;
7
   var urlImage = "<?= $url_image; ?>";
7
   var urlImage = "<?= $url_image; ?>";
8
   var tailleMaxHauteur = 580;
8
   var tailleMaxHauteur = 580;
9
   var tailleMaxlargeur = 680;
9
   var tailleMaxlargeur = 680;
10
   var titre = "<?= $titre; ?>";
10
   var titre = "<?= $titre; ?>";
11
   var urlMeta = "<?= $url_meta; ?>";
11
   var urlMeta = "<?= $url_meta; ?>";
12
   var urlContact = "<?= $url_contact; ?>";
12
   var urlContact = "<?= $url_contact; ?>";
13
   var referentiel = "<?= Registre::get('parametres.referentiel'); ?>";
13
   var referentiel = "<?= Registre::get('parametres.referentiel'); ?>";
14
   var metadonneesOuvertes = false;
14
   var metadonneesOuvertes = false;
15
   var hauteurSansMeta = null;
15
   var hauteurSansMeta = null;
16
   
16
   
17
   function redimensionnerImage(objet) {
17
   function redimensionnerImage(objet) {
18
	   
18
	   
19
	   objet.removeAttr("width"); 
19
	   objet.removeAttr("width"); 
20
	   objet.removeAttr("height");
20
	   objet.removeAttr("height");
21
	   
21
	   
22
	   var hauteurImage = objet.height();
22
	   var hauteurImage = objet.height();
23
	   var largeurImage = objet.width();
23
	   var largeurImage = objet.width();
24
	   var rapport = 1;
24
	   var rapport = 1;
25
	   if(largeurImage > hauteurImage && largeurImage > tailleMaxlargeur) {
25
	   if(largeurImage > hauteurImage && largeurImage > tailleMaxlargeur) {
26
		   rapport = hauteurImage/largeurImage;
26
		   rapport = hauteurImage/largeurImage;
27
		   if(screen.width < 800) {
27
		   if(screen.width < 800) {
28
			largeurImage = 540;
28
			largeurImage = 540;
29
			configurerAffichagePetiteTaille();
29
			configurerAffichagePetiteTaille();
30
		   }
30
		   }
31
		   
31
		   
32
		   hauteurImage = largeurImage*rapport;
32
		   hauteurImage = largeurImage*rapport;
33
		   $('#illustration').attr("height", hauteurImage);
33
		   $('#illustration').attr("height", hauteurImage);
34
		   $('#illustration').attr("width", largeurImage);
34
		   $('#illustration').attr("width", largeurImage);
35
	   }
35
	   }
36
 
36
 
37
	   if(hauteurImage > largeurImage && hauteurImage > tailleMaxHauteur) {
37
	   if(hauteurImage > largeurImage && hauteurImage > tailleMaxHauteur) {
38
		   rapport = largeurImage/hauteurImage;
38
		   rapport = largeurImage/hauteurImage;
39
		   if(screen.height < 800) {
39
		   if(screen.height < 800) {
40
			hauteurImage = 340;
40
			hauteurImage = 340;
41
			configurerAffichagePetiteTaille();
41
			configurerAffichagePetiteTaille();
42
		   } else {
42
		   } else {
43
		   	hauteurImage = 580;
43
		   	hauteurImage = 580;
44
		   	$("#info-img-galerie").height('100%');
44
		   	$("#info-img-galerie").height('100%');
45
		   }
45
		   }
46
		   
46
		   
47
		   largeurImage = hauteurImage*rapport;
47
		   largeurImage = hauteurImage*rapport;
48
		   $('#illustration').attr("height", hauteurImage);
48
		   $('#illustration').attr("height", hauteurImage);
49
		   $('#illustration').attr("width", largeurImage);
49
		   $('#illustration').attr("width", largeurImage);
50
	   }
50
	   }
51
 
51
 
52
	   var facteurResize = 90;
52
	   var facteurResize = 90;
53
	   if($(window).height() < 800) {
53
	   if($(window).height() < 800) {
54
	       facteurResize = 10;
54
	       facteurResize = 10;
55
	   }
55
	   }
56
	   hauteurSansMeta = hauteurImage+facteurResize;
56
	   hauteurSansMeta = hauteurImage+facteurResize;
57
	   window.resizeTo(largeurImage+260,hauteurImage+facteurResize+90);
57
	   window.resizeTo(largeurImage+260,hauteurImage+facteurResize+90);
58
   }
58
   }
59
 
59
 
60
   function configurerAffichagePetiteTaille() {
60
   function configurerAffichagePetiteTaille() {
61
	$("#info-img-galerie").height('100%');
61
	$("#info-img-galerie").height('100%');
62
	$('html').css('height', '100%');
62
	$('html').css('height', '100%');
63
	$('body').css('height', '100%');
63
	$('body').css('height', '100%');
64
	$("#zone-corps").height('100%');
64
	$("#zone-corps").height('100%');
65
	$("#zone-conteneur").height('100%');
65
	$("#zone-conteneur").height('100%');
66
   }
66
   }
67
   
67
   
68
   function imageSuivante() {
68
   function imageSuivante() {
69
	   indexImage++;
69
	   indexImage++;
70
	   if(indexImage >= urls.length) {
70
	   if(indexImage >= urls.length) {
71
		   indexImage = 0;
71
		   indexImage = 0;
72
	   }
72
	   }
73
	   cacherMetadonnees();
73
	   cacherMetadonnees();
74
	   $('#illustration').attr('src', urls[indexImage]);
74
	   $('#illustration').attr('src', urls[indexImage]);
75
   }
75
   }
76
   
76
   
77
   function imagePrecedente() {
77
   function imagePrecedente() {
78
	   indexImage--;
78
	   indexImage--;
79
	   if(indexImage <= 0) {
79
	   if(indexImage <= 0) {
80
		   indexImage = urls.length - 1;
80
		   indexImage = urls.length - 1;
81
	   }
81
	   }
82
	   cacherMetadonnees();
82
	   cacherMetadonnees();
83
	   $('#illustration').attr('src', urls[indexImage]);
83
	   $('#illustration').attr('src', urls[indexImage]);
84
   }
84
   }
85
   
85
   
86
   function ouvrirFenetreIllustrationResultat(url, titre) {
86
   function ouvrirFenetreIllustrationResultat(url, titre) {
87
		var fenetre = window.open('', titre+" - zoom ");
87
		var fenetre = window.open('', titre+" - zoom ");
88
		var tmp = fenetre.document;
88
		var tmp = fenetre.document;
89
		tmp.write('<html><head><title>'+titre+" - zoom "+'</title>');
89
		tmp.write('<html><head><title>'+titre+" - zoom "+'</title>');
90
		tmp.write('</head><body>');
90
		tmp.write('</head><body>');
91
		tmp.write('<p style="height="100%";text-align:center;line-height="100%"><img id="image_agrandie" style="vertical-align:middle;" src="'+url+'" /></p>');
91
		tmp.write('<p style="height="100%";text-align:center;line-height="100%"><img id="image_agrandie" style="vertical-align:middle;" src="'+url+'" /></p>');
92
		tmp.write('</body></html>');
92
		tmp.write('</body></html>');
93
		tmp.clos();
93
		tmp.clos();
94
	}
94
	}
95
   
95
   
96
   function obtenirUrlContact(idImage, IdAuteur) {
96
   function obtenirUrlContact(idImage, IdAuteur) {
97
	   return urlContact.replace('{id_auteur}',IdAuteur).replace('{id_img}',idImage);
97
	   return urlContact.replace('{id_auteur}',IdAuteur).replace('{id_img}',idImage);
98
   }
98
   }
99
   
99
   
100
   function formaterDate(string) {  
100
   function formaterDate(string) {  
101
	    var date = new Date();  
101
	    var date = new Date();  
102
	    var parts = String(string).split(/[- :]/);  
102
	    var parts = String(string).split(/[- :]/);  
103
	  
103
	  
104
	    date.setFullYear(parts[0]);  
104
	    date.setFullYear(parts[0]);  
105
	    date.setMonth(parts[1] - 1);  
105
	    date.setMonth(parts[1] - 1);  
106
	    date.setDate(parts[2]);  
106
	    date.setDate(parts[2]);  
107
	    date.setHours(parts[3]);  
107
	    date.setHours(parts[3]);  
108
	    date.setMinutes(parts[4]);  
108
	    date.setMinutes(parts[4]);  
109
	    date.setSeconds(parts[5]);  
109
	    date.setSeconds(parts[5]);  
110
	    date.setMilliseconds(0);  
110
	    date.setMilliseconds(0);  
111
	    return (("0" + date.getDate()).slice(-2))+"/"+(("0"+(date.getMonth()+1)).slice(-2))+"/"+date.getFullYear();
111
	    return (("0" + date.getDate()).slice(-2))+"/"+(("0"+(date.getMonth()+1)).slice(-2))+"/"+date.getFullYear();
112
   }
112
   }
113
   
113
   
114
	function formaterMetadonnees(data) {
114
	function formaterMetadonnees(data) {
115
	   	data.contact_url = obtenirUrlContact(ids[indexImage], data['auteur.id']);
115
	   	data.contact_url = obtenirUrlContact(ids[indexImage], data['auteur.id']);
116
		data.id = ids[indexImage];
116
		data.id = ids[indexImage];
117
		data.date = formaterDate(data.date);
117
		data.date = formaterDate(data.date);
118
		return data;
118
		return data;
119
	}
119
	}
120
   
120
   
121
   	function chargerEtAfficherMetadonnees() {
121
   	function chargerEtAfficherMetadonnees() {
122
	   $('#info-obs-meta').remove();
122
	   $('#info-obs-meta').remove();
123
	   indexImage = Math.max(indexImage, 0); // parfois on a -1 => wtf
123
	   indexImage = Math.max(indexImage, 0); // parfois on a -1 => wtf
124
	   if(meta[ids[indexImage]] == null) {   
124
	   if(meta[ids[indexImage]] == null) {   
125
			var urlMetaImage = urlMeta.replace('{projet}','cel').replace('{id}',ids[indexImage]).replace('{referentiel}',referentiel);
125
			var urlMetaImage = urlMeta.replace('{projet}','cel').replace('{id}',ids[indexImage]).replace('{referentiel}',referentiel);
126
			$.get(urlMetaImage, function(data) {
126
			$.get(urlMetaImage, function(data) {
127
				data = formaterMetadonnees(data);
127
				data = formaterMetadonnees(data);
128
				afficherMetadonnees(data);
128
				afficherMetadonnees(data);
129
				meta[ids[indexImage]] = data;
129
				meta[ids[indexImage]] = data;
130
			});
130
			});
131
	   } else {
131
	   } else {
132
		   afficherMetadonnees(meta[ids[indexImage]]);
132
		   afficherMetadonnees(meta[ids[indexImage]]);
133
	   }  	
133
	   }  	
134
   	}
134
   	}
135
   
135
   
136
	function afficherMetadonnees(data) {
136
	function afficherMetadonnees(data) {
137
		$("#tpl-obs-meta").tmpl(data).appendTo('.img-cadre');
137
		$("#tpl-obs-meta").tmpl(data).appendTo('.img-cadre');
138
		//if($(window).height() > 800) {
138
		//if($(window).height() > 800) {
139
		    window.resizeTo($(window).width(),hauteurSansMeta+300);
139
		    window.resizeTo($(window).width(),hauteurSansMeta+300);
140
		//}
140
		//}
141
		$("#lien-voir-meta").html('Cacher les informations');
141
		$("#lien-voir-meta").html('Cacher les informations');
142
	}
142
	}
143
   
143
   
144
   function cacherMetadonnees() {
144
   function cacherMetadonnees() {
145
	   //if($(window).height() > 800) {
145
	   //if($(window).height() > 800) {
146
		    window.resizeTo($(window).width(),hauteurSansMeta);
146
		    window.resizeTo($(window).width(),hauteurSansMeta);
147
	   //}
147
	   //}
148
	   $('#info-obs-meta').remove();
148
	   $('#info-obs-meta').remove();
149
	   $("#lien-voir-meta").html('Informations sur cette image / Contacter l\'auteur');
149
	   $("#lien-voir-meta").html('Informations sur cette image / Contacter l\'auteur');
150
	   metadonneesOuvertes = false;
150
	   metadonneesOuvertes = false;
151
   }
151
   }
152
   
152
   
153
   $(document).ready(function() {
153
   $(document).ready(function() {
154
	   $('#precedent').click(function() {
154
	   $('#precedent').click(function() {
155
		   imagePrecedente();
155
		   imagePrecedente();
156
	   });
156
	   });
157
	   
157
	   
158
	   $('#suivant').click(function() {
158
	   $('#suivant').click(function() {
159
		   imageSuivante();
159
		   imageSuivante();
160
	   });
160
	   });
161
 
161
 
162
	    if(!Array.indexOf){
162
	    if(!Array.indexOf){
163
		Array.indexOf = function(array, search){
163
		Array.indexOf = function(array, search){
164
		  for(var i=0; i<array.length; i++){
164
		  for(var i=0; i<array.length; i++){
165
		      if(array[i]==search){
165
		      if(array[i]==search){
166
			return i;
166
			return i;
167
		      }
167
		      }
168
		  }
168
		  }
169
		  return -1;
169
		  return -1;
170
		}
170
		}
171
	    }
171
	    }
172
	   
172
	   
173
	   if(urlImage != "null" && urlImage != "") {
173
	   if(urlImage != "null" && urlImage != "") {
174
		   indexImage = Array.indexOf(urls, urlImage);
174
		   indexImage = Array.indexOf(urls, urlImage);
175
		   $('#illustration').attr('src', urls[indexImage]);
175
		   $('#illustration').attr('src', urls[indexImage]);
176
	   }
176
	   }
177
	   
177
	   
178
	   $('#illustration').load(function() {
178
	   $('#illustration').load(function() {
179
			redimensionnerImage($(this));
179
			redimensionnerImage($(this));
180
	   });
180
	   });
181
	   
181
	   
182
	   $('#illustration').click(function() {
182
	   $('#illustration').click(function() {
183
			ouvrirFenetreIllustrationResultat($(this).attr("src").replace("L","X3L"), titre);
183
			ouvrirFenetreIllustrationResultat($(this).attr("src").replace("L","X3L"), titre);
184
	   });
184
	   });
185
	   
185
	   
186
	   $("#lien-voir-meta").click(function() {
186
	   $("#lien-voir-meta").click(function() {
187
		   metadonneesOuvertes = !metadonneesOuvertes;
187
		   metadonneesOuvertes = !metadonneesOuvertes;
188
		   if(metadonneesOuvertes) {
188
		   if(metadonneesOuvertes) {
189
		   		chargerEtAfficherMetadonnees();  
189
		   		chargerEtAfficherMetadonnees();  
190
		   } else {
190
		   } else {
191
			   	cacherMetadonnees();
191
			   	cacherMetadonnees();
192
		   }
192
		   }
193
	   });
193
	   });
194
	   
194
	   
195
	   $("body").keydown(function(e) {
195
	   $("body").keydown(function(e) {
196
		   	if(e.keyCode == 37) { // gauche
196
		   	if(e.keyCode == 37) { // gauche
197
		   		imagePrecedente();
197
		   		imagePrecedente();
198
		   	}
198
		   	}
199
		   	else if(e.keyCode == 39) { // droite
199
		   	else if(e.keyCode == 39) { // droite
200
		   		imageSuivante();
200
		   		imageSuivante();
201
		   	}
201
		   	}
202
		});
202
		});
203
	     
203
	     
204
	   $('#zone-pied').hide();
204
	   $('#zone-pied').hide();
205
   });
205
   });
206
 // -->
206
 // -->
207
</script>
207
</script>
208
 
208
 
209
<!-- Squelette du contenu du tableau des observation -->
209
<!-- Squelette du contenu du tableau des observation -->
210
<script id="tpl-obs-meta" type="text/x-jquery-tmpl">
210
<script id="tpl-obs-meta" type="text/x-jquery-tmpl">
211
	<div id="info-obs-meta" class="importance1">
211
	<div id="info-obs-meta" class="importance1">
212
		<dl>
212
		<dl>
213
			<dt>Photo n°</dt><dd>${id}</dd>
213
			<dt>Photo n°</dt><dd>${id}</dd>
214
			<dt>Titre</dt><dd>${$data["determination.nom_sci"]}
214
			<dt>Titre</dt><dd>${$data["determination.nom_sci"]}</dd>
-
 
215
			<dt>Description</dt><dd>${$data['determination.libelle']}</dd>
215
					<a style="float:right" title="Signaler une mauvaise identification sur IdentiPlante"
216
			<dd><a style="float:right" title="Signaler une mauvaise identification sur IdentiPlante"
216
					   href="http://www.tela-botanica.org/appli:identiplante#obs~%s<?= $data["observation.id"] ?>">
217
					   href="http://www.tela-botanica.org/appli:identiplante#obs~${$data["observation.id"]}">
217
						Signaler une mauvaise identification
218
						Signaler une mauvaise identification
218
					</a></dd>
219
					</a></dd>
219
			<dt>Description</dt><dd>${$data['determination.libelle']}</dd>
-
 
220
			<dt>Localisation</dt><dd>${$data['station.commune']}</dd>
220
			<dt>Localisation</dt><dd>${$data['station.commune']}</dd>
221
			<dt>Auteur</dt>
221
			<dt>Auteur</dt>
222
			<dd>
222
			<dd>
223
				${$data['auteur.libelle']}
223
				${$data['auteur.libelle']}
224
				<a class="mailto" href="${contact_url}">(Contacter ...)</a>
224
				<a class="mailto" href="${contact_url}">(Contacter ...)</a>
225
			</dd>
225
			</dd>
226
			<dt>Date d'observation</dt><dd>${date}</dd>
226
			<dt>Date d'observation</dt><dd>${date}</dd>
227
			<dt>Licence</dt><dd><a class="lien-externe" href="https://www.tela-botanica.org/page:licence">CC-BY-SA 2.0 FR</a></dd>
227
			<dt>Licence</dt><dd><a class="lien-externe" href="https://www.tela-botanica.org/page:licence">CC-BY-SA 2.0 FR</a></dd>
228
		</dl>
228
		</dl>
229
	</div>
229
	</div>
230
</script>
230
</script>
231
 
231
 
232
<div id="info-img-galerie">
232
<div id="info-img-galerie">
233
	<div class="conteneur-precedent">
233
	<div class="conteneur-precedent">
234
		<a id="precedent" href="#" title="cliquez ici ou utilisez la flèche gauche pour afficher l'image précédente"> 
234
		<a id="precedent" href="#" title="cliquez ici ou utilisez la flèche gauche pour afficher l'image précédente"> 
235
			<img style="border:none" src="https://www.tela-botanica.org/sites/commun/generique/images/flecheGauche.jpg" alt="&lt;" />
235
			<img style="border:none" src="https://www.tela-botanica.org/sites/commun/generique/images/flecheGauche.jpg" alt="&lt;" />
236
		</a>
236
		</a>
237
	</div>
237
	</div>
238
	<div class="img-cadre">
238
	<div class="img-cadre">
239
			<img id="illustration" src="<?=$urls[0]?>" alt="" title="cliquez pour voir cette image dans son format original" /><br />
239
			<img id="illustration" src="<?=$urls[0]?>" alt="" title="cliquez pour voir cette image dans son format original" /><br />
240
			<a id="lien-voir-meta" href="#" title="cliquez ici pour voir les métadonnées de l'image et contacter l'auteur">Informations sur cette image / Contacter l'auteur</a>
240
			<a id="lien-voir-meta" href="#" title="cliquez ici pour voir les métadonnées de l'image et contacter l'auteur">Informations sur cette image / Contacter l'auteur</a>
241
	</div>
241
	</div>
242
	<div class="conteneur-suivant">
242
	<div class="conteneur-suivant">
243
		<a id="suivant" href="#" title="cliquez ici ou utilisez la flèche droite pour afficher l'image suivante">
243
		<a id="suivant" href="#" title="cliquez ici ou utilisez la flèche droite pour afficher l'image suivante">
244
			<img style="border:none" src="https://www.tela-botanica.org/sites/commun/generique/images/flecheDroite.jpg" alt="&gt;" />
244
			<img style="border:none" src="https://www.tela-botanica.org/sites/commun/generique/images/flecheDroite.jpg" alt="&gt;" />
245
		</a>
245
		</a>
246
	</div>
246
	</div>
247
	<hr class="nettoyage" />
247
	<hr class="nettoyage" />
248
</div>
248
</div>