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 = ' <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 |
<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>
|