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