Rev 296 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<!-- REF - DEBUT ARBRE RECHERCHE -->
<script type="text/javascript">
var urlFicheTaxonTpl = '<?= $url_fiche_taxon_tpl; ?>';
var urlServiceTpl = '<?= $url_service_tpl; ?>';
var referentiel = '<?= $referentiel; ?>';
function afficherChargement(element) {
var htmlChargement = '<div class="arbre-chargement"> chargement </div>';
element.after(htmlChargement);
}
function cacherChargement() {
$('.arbre-chargement').remove();
}
function chargerSousClassification(element) {
var lienTpl = '<?= html_entity_decode($url_sous_taxons_tpl); ?>';
var lien = lienTpl+element.attr('rel');
var parent = element.parent();
afficherChargement(parent);
$.get(lien, function(data) {
var html = "";
var infras = data['resultats_infra'];
var nb_syn = data['resultats_nb_syn'];
var nb_infras = data['resultats_nb_infra'];
if(infras.length > 0) {
$.each(infras, function() {
html += creerTemplateSousClassification(this, nb_infras, nb_syn);
});
} else {
html =
'<ul class="branche-arbre-taxo">'+
'<li class="feuille-arbre-taxo aucun-sous-taxon">'+
'Aucun sous-taxon'+
'</li>'+
'</ul>';
}
cacherChargement();
parent.append(html);
});
}
function creerTemplateSousClassification(infra, nb_infras, nb_syn) {
var blocDepliageSousClassificiation = '';
if(nb_infras[infra.num_nom] > 0) {
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>';
} else {
blocDepliageSousClassification = '<div class="imagette-moins" title="Aucun sous-taxon"></div>';
}
var blocDepliageSynonymes = '';
if(nb_syn[infra.num_nom] > 1) {
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>';
}
var urlFicheTaxon = urlFicheTaxonTpl.replace('%s', infra.num_nom);
htmlTpl =
'<ul class="branche-arbre-taxo">'+
'<li class="feuille-arbre-taxo">'+
blocDepliageSousClassification+
'<a title="Voir la fiche de ce taxon (s\'ouvre dans un nouvel onglet)" class="lien-ouvrir-fiche-taxo" href="'+urlFicheTaxon+'">'+
infra.nom_sci+
'</a>'+
blocDepliageSynonymes+
'</li>'+
'</ul>';
return htmlTpl;
}
function afficherSousClassification(element) {
element.removeClass('branche-arbre-fermee');
element.addClass('branche-arbre-ouverte');
element.removeClass('imagette-plus');
element.addClass('imagette-moins');
element.addClass('chargee');
element.siblings('.branche-arbre-taxo').show();
}
function cacherSousClassification(element) {
element.addClass('branche-arbre-fermee');
element.removeClass('branche-arbre-ouverte');
element.addClass('imagette-plus');
element.removeClass('imagette-moins');
element.siblings('.branche-arbre-taxo').hide();
}
function chargerSynonymes(element) {
var lienTpl = '<?= html_entity_decode($url_synonymes_tpl); ?>';
var lien = lienTpl+element.attr('rel');
var parent = element.parent(".feuille-arbre-taxo");
afficherChargement(parent);
$.get(lien, function(data) {
// Un seul élément reçu = pas de synonymes car on a reçu le nom retenu
var syn = data['resultats_syn'];
if(syn.length > 1) {
var html = "";
$.each(syn, function() {
html += creerTemplateSynonymes(this);
});
} else {
var html =
'<ul class="arbre-liste-synonymes">'+
'<li class="feuille-arbre-synonyme-taxo aucun-synonyme">'+
'Aucun synonyme'+
'</li>'+
'</ul>';
}
cacherChargement();
element.after(html);
});
}
function creerTemplateSynonymes(synonyme) {
htmlTpl = '';
if(synonyme.num_nom != synonyme.num_nom_retenu) {
var urlFicheTaxon = urlFicheTaxonTpl.replace('%s', synonyme.num_nom);
var htmlTpl =
'<ul class="arbre-liste-synonymes">'+
'<li class="feuille-arbre-synonyme-taxo">'+
'<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>'+
'</li>'+
'</ul>';
}
return htmlTpl;
}
// Function pour cacher / afficher les options de recherche
$(document).ready(function() {
$(".icone-deplier-arbre").live('click', function(event) {
event.preventDefault();
if($(this).hasClass('branche-arbre-fermee')) {
if(!$(this).hasClass('chargee')) {
chargerSousClassification($(this));
}
afficherSousClassification($(this));
} else {
cacherSousClassification($(this));
}
});
$(".lien-voir-synonymes-taxo").live('click', function(event) {
event.preventDefault();
if(!$(this).hasClass('chargee')) {
chargerSynonymes($(this));
$(this).addClass('chargee');
} else {
$(this).siblings('.arbre-liste-synonymes').toggle();
}
});
$(".lien-ouvrir-fiche-taxo").live('click', function(event) {
event.preventDefault();
window.open($(this).attr("href"),'_blank');
});
});
</script>
<noscript>
<hr class="nettoyage" />
<div class="attention">Attention, la consultation de l'arborescence du référentiel
nécessite l'activation de Javascript</div>
</noscript>
<hr class="nettoyage" />
<h2 class="arbre-nombre-familles"><?= count($resultats); ?> familles</h2>
<div id="ref-arbre-taxo">
<ul class="branche-arbre-taxo">
<? foreach ($resultats as $resultat) : ?>
<? if($resultat['num_nom'] == $resultat['num_nom_retenu']) : ?>
<li class="feuille-arbre-taxo">
<?php $url_fiche_taxon = str_replace('%s', $resultat['num_nom'], $url_fiche_taxon_tpl) ?>
<?php if(isset($resultats_nb_infra[$resultat['num_nom']]) && $resultats_nb_infra[$resultat['num_nom']] > 0) { ?>
<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>
<?php } else { ?>
<div class="imagette-moins" title="Aucun sous-taxon"></div>
<?php } ?>
<a title="Voir la fiche de ce taxon (s'ouvre dans un nouvel onglet)" class="lien-ouvrir-fiche-taxo" href="<?= $url_fiche_taxon; ?>">
<?= $resultat['nom_sci'] ?>
</a>
<?php if(isset($resultats_nb_syn[$resultat['num_nom']]) && $resultats_nb_syn[$resultat['num_nom']] > 1) : ?>
<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>
<?php endif; ?>
</li>
<? endif; ?>
<? endforeach; ?>
</ul>
</div>