Subversion Repositories Applications.referentiel

Rev

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 = '&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>';
                }
                
                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) : ?>
                                        &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>
                                <?php endif; ?>
                        </li>
                        <? endif; ?>
                <? endforeach; ?>
        </ul>
</div>