Subversion Repositories Applications.referentiel

Compare Revisions

No changes between revisions

Ignore whitespace Rev 299 → Rev 300

/trunk/interfaces/squelettes/arbre_taxon.tpl.html
3,36 → 3,74
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 = urlServiceTpl+'Recherche/Classification/'+referentiel+'/*/*/*/*/*/*/*/num_nom/*/*/*/*/*/infra/*';
var lien = lienTpl.replace('num_nom', element.attr('rel'));
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 = "";
if(data.length > 0) {
$.each(data, function() {
var urlFicheTaxon = urlFicheTaxonTpl.replace('%s', this.num_nom);
var htmlTpl =
'<ul class="branche-arbre-taxo">'+
'<li class="feuille-arbre-taxo">'+
'<div rel="'+this.num_nom+'" class="icone-deplier-arbre imagette-plus branche-arbre-fermee" title="Voir les sous taxons"></div>'+
'<a title="Voir la fiche de ce taxon" class="lien-ouvrir-fiche-taxo" href="'+urlFicheTaxon+'">'+this.nom_sci+'</a>'+
'&nbsp;<a title="Afficher les synynomes de ce taxon" rel="'+this.num_nom+'" class="lien-voir-synonymes-taxo" href="#">(syn)</a>'+
'</li>'+
'</ul>';
html += htmlTpl;
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">'+
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');
48,41 → 86,48
element.addClass('imagette-plus');
element.removeClass('imagette-moins');
element.siblings('.branche-arbre-taxo').hide();
}
function chargerSynonymes(element) {
var lienTpl = urlServiceTpl+'Recherche/ParTaxon/'+referentiel+'/*/*/*/*/*/*/*/num_nom/*/*/1/*/*/*/*';
var lien = lienTpl.replace('num_nom', element.attr('rel'));
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
if(data.length > 1) {
var syn = data['resultats_syn'];
if(syn.length > 1) {
var html = "";
$.each(data, function() {
if(this.num_nom != this.num_nom_retenu) {
var urlFicheTaxon = urlFicheTaxonTpl.replace('%s', this.num_nom);
var htmlTpl =
'<ul class="arbre-liste-synonymes">'+
'<li class="feuille-arbre-synonyme-taxo">'+
'<a title="Voir la fiche de ce taxon" class="lien-ouvrir-fiche-taxo" href="'+urlFicheTaxon+'">'+this.nom_sci+'</a>'+
'</li>'+
'</ul>';
html += htmlTpl;
}
$.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>';
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) {
106,6 → 151,11
$(this).siblings('.arbre-liste-synonymes').toggle();
}
});
$(".lien-ouvrir-fiche-taxo").live('click', function(event) {
event.preventDefault();
window.open($(this).attr("href"),'_blank');
});
});
</script>
<noscript>
114,17 → 164,24
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); ?>
<div rel="<?=$resultat['num_nom']?>" class="icone-deplier-arbre imagette-plus branche-arbre-fermee" title="Voir les sous taxons"></div>
<a title="Voir la fiche de ce taxon" title="Voir la fiche de ce taxon" class="lien-ouvrir-fiche-taxo" href="<?= $url_fiche_taxon; ?>">
<?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>
&nbsp;<a rel="<?=$resultat['num_nom']?>" title="Afficher les synynomes de ce taxon" class="lien-voir-synonymes-taxo" href="#">(syn)</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; ?>
/trunk/interfaces/squelettes/css/referentiel/referentiel.css
563,6 → 563,16
cursor:pointer;
}
 
.arbre-chargement {
background: url("images/chargement.gif") no-repeat scroll 0 5px transparent;
margin-left: 17px;
padding: 5px 5px 5px 20px;
}
 
.arbre-nombre-familles {
padding-left: 30px;
}
 
.branche-arbre-taxo, .aucun-synonyme {
list-style-type:none;
}
577,6 → 587,7
 
#texte li.feuille-arbre-synonyme-taxo {
margin-top: 3px;
list-style-type: square;
}
 
.branche-arbre-taxo {
/trunk/interfaces/squelettes/css/referentiel/images/chargement.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/interfaces/squelettes/css/referentiel/images/chargement.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/interfaces/controleurs/AppliControleur.php
192,7 → 192,7
$menu['activite'] = ((preg_match('/^(?:Consultation|Recherche|FicheTaxon)$/', $this->getModulePrincipalCourant())) ? 'actif' : 'inactif');
$menu['title'] = "Interroger la base en cours de travail.";
$donnees['menus'][] = $menu;
$menu['nom'] = 'Arbre';
$menu['nom'] = 'Arbre taxo';
$menu['url'] = $this->obtenirUrlMenuArbre($referentiel);
$menu['activite'] = (($this->getModulePrincipalCourant() == 'Arbre') ? 'actif' : 'inactif');
$menu['title'] = "Consulter l'aborescence du référentiel";
297,6 → 297,28
return $this->obtenirUrlMenu('Arbre', $referentiel);
}
protected function obtenirUrlMenuBranche($referentiel, $num_nom) {
$this->url->setRequete(false);
$this->url->setVariableRequete('module', 'Arbre');
$this->url->setVariableRequete('action', 'afficherBranche');
$this->url->setVariableRequete('ref', $referentiel);
$this->url->setVariableRequete('num_nom', $num_nom);
$url = $this->url->getURL();
$this->url->unsetVariablesRequete(array('module', 'action', 'ref', 'num_nom'));
return $url;
}
protected function obtenirUrlMenuBrancheSynonyme($referentiel, $num_nom) {
$this->url->setRequete(false);
$this->url->setVariableRequete('module', 'Arbre');
$this->url->setVariableRequete('action', 'afficherBrancheSynonyme');
$this->url->setVariableRequete('ref', $referentiel);
$this->url->setVariableRequete('num_nom', $num_nom);
$url = $this->url->getURL();
$this->url->unsetVariablesRequete(array('module', 'action', 'ref', 'num_nom'));
return $url;
}
private function obtenirUrlMenu($menu, $referentiel = null) {
$this->url->setRequete(false);
$this->url->setVariableRequete('module', $menu);
/trunk/interfaces/controleurs/Arbre.php
15,12 → 15,13
class Arbre extends AppliControleur {
private $referentiel = null;
private $rechercheDao = null;
public function __construct() {
parent::__construct();
// Récupération de paramêtres
if (isset($_GET['ref'])) { // code du projet courrant
// Récupération de paramètres
if (isset($_GET['ref'])) { // code du projet courant
$this->referentiel = strtolower($_GET['ref']);
}
}
34,21 → 35,107
$this->definirCommeModulePrincipal(get_class($this));
$this->construireMenu($this->referentiel);
$this->construireFilAriane($this->referentiel);
$this->executerActionReferentiel('Arbre', 'afficherArbre', $this->referentiel, 20);
$this->executerActionReferentiel('Arbre', 'afficherArbre', $this->referentiel, false);
}
public function afficherArbre() {
$donnees = array();
$rechercheDao = new RechercheDao();
$parametres = array('mots' => '*',
'ref' => $this->referentiel,
'rg' => 180);
$donnees['resultats'] = $rechercheDao->chercher('ParDefaut', $parametres);
$donnees['resultats'] = $this->chercherFamilles();
$nns = array();
foreach($donnees['resultats'] as $resultat) {
$nns[] = $resultat['num_nom'];
}
$donnees['resultats_nb_infra'] = $this->chercherNombreInfras($nns);
$donnees['resultats_nb_syn'] = $this->chercherNombreSynonymes($nns);
$donnees['url_service_tpl'] = Config::get('url_jrest');
$donnees['url_sous_taxons_tpl'] = $this->obtenirUrlMenuBranche($this->referentiel, '');
$donnees['url_synonymes_tpl'] = $this->obtenirUrlMenuBrancheSynonyme($this->referentiel, '');
$donnees['url_fiche_taxon_tpl'] = $this->obtenirUrlFicheTaxon($this->referentiel, '%s');
$donnees['referentiel'] = $this->referentiel;
$resultat = $this->getVue('arbre_taxon', $donnees);
$this->setSortie(self::RENDU_CORPS, $resultat);
}
public function afficherBranche() {
$donnees = array();
$donnees['resultats_infra'] = $this->chercherInfras($_GET['num_nom']);
foreach($donnees['resultats_infra'] as $resultat) {
$nns[] = $resultat['num_nom'];
}
$donnees['resultats_nb_infra'] = $this->chercherNombreInfras($nns);
$donnees['resultats_nb_syn'] = $this->chercherNombreSynonymes($nns);
$resultat = json_encode($donnees);
header('Content-type: application/json');
echo $resultat;
exit;
}
public function afficherBrancheSynonyme() {
$donnees['resultats_syn'] = $this->chercherSynonymes($_GET['num_nom']);
$resultat = json_encode($donnees);
header('Content-type: application/json');
echo $resultat;
exit;
}
private function getDao() {
if($this->rechercheDao == null) {
$this->rechercheDao = new RechercheDao();
}
return $this->rechercheDao;
}
private function chercherFamilles() {
$rechercheDao = $this->getDao();
$rechercheDao->setLimitation(0,10000);
$parametres = array('mots' => '*',
'ref' => $this->referentiel,
'rg' => 180);
$resultats = $rechercheDao->chercher('ParDefaut', $parametres);
return $resultats;
}
private function chercherNombreSynonymes($tableau_nn) {
$rechercheDao = $this->getDao();
$parametres_syn = array('mots' => '*',
'ref' => $this->referentiel,
'nn' => implode(',', $tableau_nn));
$resultats_nb_syn = $rechercheDao->chercher('NombreSynonymeParTaxon', $parametres_syn);
return $resultats_nb_syn;
}
private function chercherSynonymes($num_nom) {
$rechercheDao = $this->getDao();
$parametres_syn = array('mots' => '*',
'ref' => $this->referentiel,
'nn' => $num_nom);
$resultats_syn = $rechercheDao->chercher('ParTaxon', $parametres_syn);
return $resultats_syn;
}
private function chercherNombreInfras($tableau_nn) {
$rechercheDao = $this->getDao();
$parametres_infra = array('mots' => '*',
'ref' => $this->referentiel,
'classif' => 'infra',
'nn' => implode(',', $tableau_nn));
$resultats_nb_infra = $rechercheDao->chercher('NombreClassifParTaxon', $parametres_infra);
return $resultats_nb_infra;
}
private function chercherInfras($num_nom) {
$rechercheDao = $this->getDao();
$parametres = array('mots' => '*',
'ref' => $this->referentiel,
'classif' => 'infra',
'nn' => $num_nom);
$resultats_infra = $rechercheDao->chercher('Classification', $parametres);
return $resultats_infra;
}
}
?>