Subversion Repositories Applications.referentiel

Compare Revisions

Ignore whitespace Rev 167 → Rev 168

/trunk/interfaces/controleurs/FicheTaxon.php
67,17 → 67,13
private function chargerNomenclature() {
$this->donnees['selectionne'] = $this->taxonDao->getNomenclature($this->referentiel, $this->donnees['num_nom']);
if (strpos($this->donnees['nom'], ' x ') ) {
if ($this->donnees['num_nom'] != $this->donnees['num_nom_retenu'] && $this->donnees['num_nom_retenu'] != '') {
$this->donnees['retenu'] = $this->taxonDao->getNomenclature($this->referentiel, $this->donnees['num_nom_retenu']);
$this->donnees['parents'] = $this->taxonDao->getParentsHybride($this->referentiel, $this->donnees['num_nom_retenu']);
} else {
$this->donnees['parents'] = $this->taxonDao->getParentsHybride($this->referentiel, $this->donnees['num_nom']);
}
} else {
if ($this->donnees['num_nom'] != $this->donnees['num_nom_retenu'] && $this->donnees['num_nom_retenu'] != '') {
$this->donnees['retenu'] = $this->taxonDao->getNomenclature($this->referentiel, $this->donnees['num_nom_retenu']);
}
if ($this->donnees['num_nom'] != $this->donnees['num_nom_retenu'] && $this->donnees['num_nom_retenu'] != '') {
$this->donnees['retenu'] = $this->taxonDao->getNomenclature($this->referentiel, $this->donnees['num_nom_retenu']);
}
if ($this->donnees['info']['hybride_parent_01'] != '' && $this->donnees['info']['hybride_parent_02'] != '') {
$this->donnees['parents'] = $this->taxonDao->getParentsHybride($this->referentiel, $this->donnees['num_nom']);
} elseif ($this->donnees['info']['hybride_parent_01'] != '' || $this->donnees['info']['hybride_parent_02'] != ''){
$this->donnees['parents'] = $this->taxonDao->getParentsHybride($this->referentiel, $this->donnees['num_nom']);
}
}
205,19 → 201,17
private function chargerClassification() {
$this->chargerTableauManuel('signification_rang');
$this->donnees['valeur_rang'] = $this->tableau_manuel['signification_rang'];
if ($this->donnees['info']['num_tax_sup'] != '' || isset($this->donnees['retenu']['num_tax_sup'])) {
if ($this->donnees['num_nom'] == $this->donnees['num_nom_retenu']) {
$this->donnees['classification']['supérieurs'] = array_reverse($this->taxonDao->getClassification
('Superieur', $this->referentiel, $this->donnees['info']['num_tax_sup']));
} else {
$this->donnees['classification']['supérieurs'] = array_reverse($this->taxonDao->getClassification
if ($this->donnees['info']['num_tax_sup'] != '' && $this->donnees['info']['num_tax_sup'] !== "0") {
$this->donnees['classification']['supérieurs'] = array_reverse($this->taxonDao->getClassification
('Superieur', $this->referentiel, $this->donnees['info']['num_tax_sup']));
} elseif (isset($this->donnees['retenu']['num_tax_sup']) && ($this->donnees['retenu']['num_tax_sup'] != '')) {
$this->donnees['classification']['supérieurs'] = array_reverse($this->taxonDao->getClassification
('Superieur', $this->referentiel, $this->donnees['retenu']['num_tax_sup']));
}
}
if ($this->donnees['num_nom_retenu'] != '') {
$class_inf = $this->taxonDao->getClassification
('Inferieur', $this->referentiel, $this->donnees['num_nom_retenu']);
if ($class_inf != '') {
if ($class_inf != '') {
$this->donnees['classification']['inférieurs'] = $class_inf['inf'];
$this->donnees['niveau'] = $class_inf['niveau'];
}
/trunk/interfaces/controleurs/Recherche.php
137,6 → 137,7
if (isset($parametres['tax']) && ($parametres['tax'] == 1)) {
$resultat = $this->chercherSynonymes($rechercheDao, $parametres);
} else {
$donnees['referentiel'] = $this->referentiel;
$donnees['fragmenteur'] = $this->gererFragmenteur($rechercheDao, $parametres);
$donnees['resultats'] = $rechercheDao->chercher('ParDefaut', $parametres);
$resultat = $this->getVue('resultat_recherche', $donnees);
149,6 → 150,7
private function chercherSynonymes($rechercheDao, $parametres){
$this->donnees_par_page = 2;
$this->donnees_par_page_choix = '1,2,5,10';
$donnees['referentiel'] = $this->referentiel;
$donnees['fragmenteur'] = $this->gererFragmenteur($rechercheDao, $parametres, 'NombreTaxon');
$resultats = $rechercheDao->chercher('ParTaxon', $parametres);
foreach ($resultats as $res) {
/trunk/services/modules/FicheTaxon.php
112,12 → 112,27
/* Méthode pour récupérer les infos sur les parents d'un taxon hybride sélectionné
* Appelée avec les paramètres d'url suivant : /ParentsHybride/ref/num_nom */
public function getElementParentsHybride($ref, $num_nom) {
$requete = "SELECT p1.num_nom AS p1_num, p1.nom_sci AS p1_nom, p1.auteur AS p1_auteur, p1.annee AS p1_annee,
$requete = "";
$requete_parents = "SELECT hybride_parent_01, hybride_parent_02 FROM {$ref} WHERE num_nom = {$num_nom};";
$parents = $this->bdd->query($requete_parents)->fetchAll(PDO::FETCH_ASSOC);
if ($parents[0]['hybride_parent_01'] != '' && $parents[0]['hybride_parent_02'] != '') {
$requete = "SELECT p1.num_nom AS p1_num, p1.nom_sci AS p1_nom, p1.auteur AS p1_auteur, p1.annee AS p1_annee,
p1.biblio_origine AS p1_bib, p1.nom_addendum AS p1_nom_add, p1.num_nom AS p1_num_retenu,
p2.num_nom AS p2_num, p2.nom_sci AS p2_nom, p2.auteur AS p2_auteur, p2.annee AS p2_annee,
p2.biblio_origine AS p2_bib, p2.nom_addendum AS p2_nom_add, p2.num_nom AS p2_num_retenu ".
" FROM {$ref} p1, {$ref} p2, {$ref} h ".
" WHERE p1.num_nom = h.hybride_parent_01 AND p2.num_nom = h.hybride_parent_02 AND h.num_nom = {$num_nom};";
} elseif ($parents[0]['hybride_parent_01'] != '' && $parents[0]['hybride_parent_02'] == '') {
$requete = "SELECT p1.num_nom AS p1_num, p1.nom_sci AS p1_nom, p1.auteur AS p1_auteur, p1.annee AS p1_annee,
p1.biblio_origine AS p1_bib, p1.nom_addendum AS p1_nom_add, p1.num_nom AS p1_num_retenu ".
" FROM {$ref} p1, {$ref} p2, {$ref} h ".
" WHERE p1.num_nom = h.hybride_parent_01 AND h.num_nom = {$num_nom};";
} elseif ($parents[0]['hybride_parent_01'] == '' && $parents[0]['hybride_parent_02'] != '') {
$requete = "SELECT p2.num_nom AS p2_num, p2.nom_sci AS p2_nom, p2.auteur AS p2_auteur, p2.annee AS p2_annee,
p2.biblio_origine AS p2_bib, p2.nom_addendum AS p2_nom_add, p2.num_nom AS p2_num_retenu ".
" FROM {$ref} p1, {$ref} p2, {$ref} h ".
" WHERE p2.num_nom = h.hybride_parent_02 AND h.num_nom = {$num_nom};";
}
$donnees = array();
// Récupération des résultats
147,7 → 162,7
// Récupération des résultats
try {
$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
if ($donnees === array()) {
if ($donnees === array() || isset($info[$donnees[0]['num_nom']])) {
$taxonSuperieur = null;
} else {
$taxonSuperieur = $donnees[0]['num_tax_sup'];
169,6 → 184,23
try {
$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
if ($donnees === array()) {
} elseif (isset($niveau) && $niveau >= 6) {
if ((isset($this->resultat['niveau']) && $niveau > $this->resultat['niveau']) || !isset($this->resultat['niveau'])) {
$this->resultat['niveau'] = $niveau;
}
foreach ($donnees as $donnee) {
$this->resultat['inf'][$donnee['num_nom']] = $donnee;
$this->resultat['inf'][$donnee['num_nom']]['niveau'] = $niveau;
}
} elseif (count($donnees) >= 100 ||
(isset($this->resultat['inf']) && count($this->resultat['inf'])+count($donnees) >= 100)) {
if ((isset($this->resultat['niveau']) && $niveau > $this->resultat['niveau']) || !isset($this->resultat['niveau'])) {
$this->resultat['niveau'] = $niveau;
}
foreach ($donnees as $donnee) {
$this->resultat['inf'][$donnee['num_nom']] = $donnee;
$this->resultat['inf'][$donnee['num_nom']]['niveau'] = $niveau;
}
} else {
if ((isset($this->resultat['niveau']) && $niveau > $this->resultat['niveau']) || !isset($this->resultat['niveau'])) {
$this->resultat['niveau'] = $niveau;