Subversion Repositories Applications.referentiel

Rev

Rev 296 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
295 aurelien 1
<!-- REF - DEBUT ARBRE RECHERCHE -->
2
<script type="text/javascript">
3
	var urlFicheTaxonTpl = '<?= $url_fiche_taxon_tpl; ?>';
4
	var urlServiceTpl = '<?= $url_service_tpl; ?>';
5
	var referentiel = '<?= $referentiel; ?>';
300 aurelien 6
 
7
	function afficherChargement(element) {
8
		var htmlChargement = '<div class="arbre-chargement"> chargement </div>';
9
		element.after(htmlChargement);
10
	}
11
 
12
	function cacherChargement() {
13
		$('.arbre-chargement').remove();
14
	}
15
 
295 aurelien 16
	function chargerSousClassification(element) {
300 aurelien 17
 
18
		var lienTpl = '<?= html_entity_decode($url_sous_taxons_tpl); ?>';
19
		var lien = lienTpl+element.attr('rel');
295 aurelien 20
		var parent = element.parent();
300 aurelien 21
		afficherChargement(parent);
295 aurelien 22
		$.get(lien, function(data) {
23
			var html = "";
300 aurelien 24
			var infras = data['resultats_infra'];
25
			var nb_syn = data['resultats_nb_syn'];
26
			var nb_infras = data['resultats_nb_infra'];
27
 
28
			if(infras.length > 0) {
29
				$.each(infras, function() {
30
					html += creerTemplateSousClassification(this, nb_infras, nb_syn);
295 aurelien 31
				});
32
			} else {
300 aurelien 33
				html =
34
					'<ul class="branche-arbre-taxo">'+
295 aurelien 35
						'<li class="feuille-arbre-taxo aucun-sous-taxon">'+
36
							'Aucun sous-taxon'+
37
						'</li>'+
38
					'</ul>';
39
			}
300 aurelien 40
			cacherChargement();
295 aurelien 41
			parent.append(html);
42
		});
43
	}
44
 
300 aurelien 45
	function creerTemplateSousClassification(infra, nb_infras, nb_syn) {
46
 
47
		var blocDepliageSousClassificiation = '';
48
		if(nb_infras[infra.num_nom] > 0) {
49
			blocDepliageSousClassification = '<div rel="'+infra.num_nom+'" class="icone-deplier-arbre imagette-plus branche-arbre-fermee" title="Voir les sous taxons du rang inférieur ('+nb_infras[infra.num_nom]+')"></div>';
50
		} else {
51
			blocDepliageSousClassification = '<div class="imagette-moins" title="Aucun sous-taxon"></div>';
52
		}
53
 
54
		var blocDepliageSynonymes = '';
55
		if(nb_syn[infra.num_nom] > 1) {
56
			blocDepliageSynonymes = '&nbsp;<a rel="'+infra.num_nom+'" title="Afficher les synynomes de ce taxon ('+(nb_syn[infra.num_nom] - 1)+')" class="lien-voir-synonymes-taxo" href="#">(syn)</a>';
57
		}
58
 
59
		var urlFicheTaxon = urlFicheTaxonTpl.replace('%s', infra.num_nom);
60
		htmlTpl =
61
			'<ul class="branche-arbre-taxo">'+
62
				'<li class="feuille-arbre-taxo">'+
63
					blocDepliageSousClassification+
64
					'<a title="Voir la fiche de ce taxon (s\'ouvre dans un nouvel onglet)" class="lien-ouvrir-fiche-taxo" href="'+urlFicheTaxon+'">'+
65
					infra.nom_sci+
66
					'</a>'+
67
					blocDepliageSynonymes+
68
				'</li>'+
69
			'</ul>';
70
 
71
		return htmlTpl;
72
	}
73
 
295 aurelien 74
	function afficherSousClassification(element) {
75
		element.removeClass('branche-arbre-fermee');
76
		element.addClass('branche-arbre-ouverte');
77
		element.removeClass('imagette-plus');
78
		element.addClass('imagette-moins');
79
		element.addClass('chargee');
80
		element.siblings('.branche-arbre-taxo').show();
81
	}
82
 
83
	function cacherSousClassification(element) {
84
		element.addClass('branche-arbre-fermee');
85
		element.removeClass('branche-arbre-ouverte');
86
		element.addClass('imagette-plus');
87
		element.removeClass('imagette-moins');
88
		element.siblings('.branche-arbre-taxo').hide();
89
	}
90
 
91
	function chargerSynonymes(element) {
300 aurelien 92
		var lienTpl = '<?= html_entity_decode($url_synonymes_tpl); ?>';
93
		var lien = lienTpl+element.attr('rel');
295 aurelien 94
		var parent = element.parent(".feuille-arbre-taxo");
300 aurelien 95
		afficherChargement(parent);
295 aurelien 96
		$.get(lien, function(data) {
97
			// Un seul élément reçu = pas de synonymes car on a reçu le nom retenu
300 aurelien 98
			var syn = data['resultats_syn'];
99
			if(syn.length > 1) {
295 aurelien 100
				var html = "";
300 aurelien 101
				$.each(syn, function() {
102
					html += creerTemplateSynonymes(this);
295 aurelien 103
				});
104
			} else {
300 aurelien 105
				var html =
106
					'<ul class="arbre-liste-synonymes">'+
107
						'<li class="feuille-arbre-synonyme-taxo aucun-synonyme">'+
108
							'Aucun synonyme'+
109
						'</li>'+
110
					'</ul>';
295 aurelien 111
			}
300 aurelien 112
			cacherChargement();
295 aurelien 113
			element.after(html);
114
		});
115
	}
116
 
300 aurelien 117
	function creerTemplateSynonymes(synonyme) {
118
		htmlTpl = '';
119
		if(synonyme.num_nom != synonyme.num_nom_retenu) {
120
			var urlFicheTaxon = urlFicheTaxonTpl.replace('%s', synonyme.num_nom);
121
			var htmlTpl =
122
				'<ul class="arbre-liste-synonymes">'+
123
					'<li class="feuille-arbre-synonyme-taxo">'+
124
						'<a title="Voir la fiche de ce taxon (s\'ouvre dans un nouvel onglet)" class="lien-ouvrir-fiche-taxo" href="'+urlFicheTaxon+'">'+synonyme.nom_sci+'</a>'+
125
					'</li>'+
126
				'</ul>';
127
		}
128
		return htmlTpl;
129
	}
130
 
295 aurelien 131
	// Function pour cacher / afficher les options de recherche
132
	$(document).ready(function() {
133
		$(".icone-deplier-arbre").live('click', function(event) {
134
			event.preventDefault();
135
			if($(this).hasClass('branche-arbre-fermee')) {
136
				if(!$(this).hasClass('chargee')) {
137
					chargerSousClassification($(this));
138
				}
139
				afficherSousClassification($(this));
140
			} else {
141
				cacherSousClassification($(this));
142
			}
143
		});
144
 
145
		$(".lien-voir-synonymes-taxo").live('click', function(event) {
146
			event.preventDefault();
147
			if(!$(this).hasClass('chargee')) {
148
				chargerSynonymes($(this));
149
				$(this).addClass('chargee');
150
			} else {
151
				$(this).siblings('.arbre-liste-synonymes').toggle();
152
			}
153
		});
300 aurelien 154
 
155
		$(".lien-ouvrir-fiche-taxo").live('click', function(event) {
156
			event.preventDefault();
157
			window.open($(this).attr("href"),'_blank');
158
		});
295 aurelien 159
	});
160
</script>
161
<noscript>
162
	 <hr class="nettoyage" />
163
     <div class="attention">Attention, la consultation de l'arborescence du référentiel
164
     nécessite l'activation de Javascript</div>
165
</noscript>
166
<hr class="nettoyage" />
300 aurelien 167
<h2 class="arbre-nombre-familles"><?= count($resultats); ?> familles</h2>
295 aurelien 168
<div id="ref-arbre-taxo">
169
	<ul class="branche-arbre-taxo">
170
		<? foreach ($resultats as $resultat) : ?>
171
			<? if($resultat['num_nom'] == $resultat['num_nom_retenu']) : ?>
172
			<li class="feuille-arbre-taxo">
300 aurelien 173
				<?php $url_fiche_taxon = str_replace('%s', $resultat['num_nom'], $url_fiche_taxon_tpl) ?>
174
				<?php if(isset($resultats_nb_infra[$resultat['num_nom']]) && $resultats_nb_infra[$resultat['num_nom']] > 0) { ?>
175
					<div rel="<?=$resultat['num_nom']?>" class="icone-deplier-arbre imagette-plus branche-arbre-fermee" title="Voir les sous taxons du rang inférieur (<?= $resultats_nb_infra[$resultat['num_nom']]; ?>)"></div>
176
				<?php } else { ?>
177
					<div class="imagette-moins" title="Aucun sous-taxon"></div>
178
				<?php } ?>
179
				<a title="Voir la fiche de ce taxon (s'ouvre dans un nouvel onglet)" class="lien-ouvrir-fiche-taxo" href="<?= $url_fiche_taxon; ?>">
295 aurelien 180
					<?= $resultat['nom_sci'] ?>
181
				</a>
300 aurelien 182
				<?php if(isset($resultats_nb_syn[$resultat['num_nom']]) && $resultats_nb_syn[$resultat['num_nom']] > 1) : ?>
183
					&nbsp;<a rel="<?=$resultat['num_nom']?>" title="Afficher les synynomes de ce taxon (<?= $resultats_nb_syn[$resultat['num_nom']] - 1; ?>)" class="lien-voir-synonymes-taxo" href="#">(syn)</a>
184
				<?php endif; ?>
295 aurelien 185
			</li>
186
			<? endif; ?>
187
		<? endforeach; ?>
188
	</ul>
189
</div>