Subversion Repositories Applications.referentiel

Compare Revisions

Ignore whitespace Rev 87 → Rev 88

/trunk/interfaces/squelettes/fiche_taxon.tpl.html
145,7 → 145,8
</tr>
<? endif;
endif;
if ($selectionne['nom_francais'] != '' || (isset($retenu['nom_francais']) && $retenu['nom_francais'] != '')) : ?>
if ((isset($selectionne['nom_francais']) && $selectionne['nom_francais'] != '') ||
(isset($retenu['nom_francais']) && $retenu['nom_francais'] != '')) : ?>
<tr><td colspan="7"></td></tr>
<tr>
<td>Nom français</td>
224,53 → 225,38
<div id="ref-ref-synonymie">
<h2>Synonymie</h2>
<? if (isset($fiche_synonymie)) :
foreach ($fiche_synonymie as $type => $synonymes) {?>
<table>
<thead>
<tr><th colspan="3">Synonymie <?=$type;?></th></tr>
<tr>
<th>Nom scientifique</th>
<th>Auteur</th>
<th>Année</th>
<th>Référence bibliographique</th>
<th>Nom addendum</th>
<th>Identifiant numérique du nom scientifique</th>
</tr>
</thead><tbody>
<? foreach ($synonymes as $synonyme) {?>
<?=($synonyme['num_nom'] == $synonyme['num_nom_retenu'])? "<tr class='nom_retenu'>" : "<tr>";?>
<td><?=$synonyme['nom_complet'];?></td>
<td><?=$synonyme['auteur'];?></td>
<td><?=$synonyme['annee'];?></td>
<td><?=$synonyme['biblio_origine'];?></td>
<td><?=$synonyme['nom_addendum'];?></td>
<td><?=$synonyme['num_nom'];?></td>
</tr>
<? } ?>
</tbody>
</table>
<br/>
<? } endif;?>
<? if (isset($homonyme)) : ?>
<table>
<thead>
<tr><th colspan="3">Homonyme (sensu)</th></tr>
<tr>
<th>Nom scientifique</th>
<th>Auteur</th>
<th>Année</th>
<th>Référence bibliographique</th>
<th>Nom addendum</th>
<th>Identifiant numérique du nom scientifique</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<br/>
<? endif; ?>
foreach($fiche_synonymie as $ordre => $fiche) {
foreach ($fiche as $type => $synonymes) {?>
<table>
<thead>
<tr><th colspan="3"><?=($type == 'Homonymie (sensu)') ? $type : "Synonymie ".$type;?></th></tr>
<tr>
<?=($type == 'Homonymie (sensu)') ? "<th>Homonyme</th>" : "";?>
<?=($type == 'mal appliquée') ? "<th></th>" : "";?>
<th>Nom scientifique</th>
<th>Auteur</th>
<th>Année</th>
<th>Référence bibliographique</th>
<th>Nom addendum</th>
<th>Identifiant numérique du nom scientifique</th>
</tr>
</thead><tbody>
<? foreach ($synonymes as $synonyme) {?>
<?=($synonyme['num_nom'] == $synonyme['num_nom_retenu'])? "<tr class='nom_retenu'>" : "<tr>";?>
<?=($type == 'Homonymie (sensu)') ? "<td>".$synonyme['homonyme']."</td>" : "";?>
<?=($type == 'mal appliquée') ? "<td>".$synonyme['statut']."</td>" : "";?>
<td><?=$synonyme['nom_complet'];?></td>
<td><?=$synonyme['auteur'];?></td>
<td><?=$synonyme['annee'];?></td>
<td><?=$synonyme['biblio_origine'];?></td>
<td><?=$synonyme['nom_addendum'];?></td>
<td><?=$synonyme['num_nom'];?></td>
</tr>
<? } ?>
</tbody>
</table>
<br/>
<? } } endif;?>
</div>
<div id="ref-ref-classification">
332,7 → 318,7
 
<div id="ref-ref-chorologie">
<h2>Chorologie</h2>
<? if ($chorologie) : ?>
<? if (isset($chorologie)) : ?>
<table>
<tr><th></th>
<? foreach ($chorologie['Présence'] as $lieu=>$valeur) {?>
353,7 → 339,7
 
<div id="ref-ref-complement">
<h2>Compléments</h2>
<?php if ($complement) : ?>
<?php if (isset($complement)) : ?>
<table>
<? foreach ($complement as $champ=>$valeur) {?>
<tr>
/trunk/interfaces/controleurs/FicheTaxon.php
52,12 → 52,14
$this->donnees['nom'] = $_GET['nom'];
$this->donnees['info'] = $this->taxonDao->getTaxon($this->referentiel, $this->donnees['num_nom']);
// Chargement des données des onglets
$this->chargerNomenclature();
$this->chargerSynonymie();
$this->chargerClassification();
$this->chargerChorologie();
$this->chargerComplements();
if ($this->donnees['info'] != '') {
// Chargement des données des onglets
$this->chargerNomenclature();
$this->chargerSynonymie();
$this->chargerClassification();
$this->chargerChorologie();
$this->chargerComplements();
}
$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_taxon', $this->donnees));
}
89,8 → 91,9
if ($synonymes != '') {
foreach ($synonymes as $synonyme) {
if ($this->donnees['num_nom'] != $synonyme['num_nom'] && $synonyme['basionyme'] != null) {
if (($this->donnees['num_nom'] != $synonyme['num_nom']) && ($synonyme['basionyme'] == $this->donnees['num_nom'] ||
$this->donnees['info']['basionyme'] == $synonyme['num_nom'] || $this->donnees['info']['basionyme'] == $synonyme['basionyme'])) {
if (($this->donnees['num_nom'] != $synonyme['num_nom']) && ($synonyme['basionyme'] ==
$this->donnees['num_nom'] || $this->donnees['info']['basionyme'] == $synonyme['num_nom'] ||
$this->donnees['info']['basionyme'] == $synonyme['basionyme'])) {
$this->donnees['fiche_synonymie']['nomenclaturale'][] = $synonyme;
} elseif ($this->donnees['num_nom'] != $synonyme['num_nom'] && $synonyme['basionyme'] != null &&
$this->donnees['info']['basionyme'] != null) {
97,38 → 100,45
$this->donnees['fiche_synonymie']['taxonomique'][] = $synonyme;
}
} elseif ($this->donnees['num_nom'] != $synonyme['num_nom']) {
///nom est synonyme mal applique de num_nom_retenu
if ($synonyme['synonyme_mal_applique'] == 1) {
$this->donnees['fiche_synonymie']['mal appliquée'][] = $synonyme;
$this->donnees['fiche_synonymie']['indéterminée (pas de basionyme)'][] = $synonyme;
}
if ($synonyme['synonyme_mal_applique'] == 1) {
if ($synonyme['num_nom'] == $synonyme['num_nom_retenu']) {
$synonyme['statut'] = 'posséde des synonymes mal appliqués';
} else {
$this->donnees['fiche_synonymie']['indéterminée (pas de basionyme)'][] = $synonyme;
$synonyme['statut'] = 'est synonyme mal appliqué du num_nom '.$synonyme['num_nom_retenu'];
}
$this->donnees['fiche_synonymie']['mal appliquée'][] = $synonyme;
}
if (isset($synonyme['synonyme_orthographique']) && $synonyme['synonyme_orthographique'] != '') {
if ($synonyme['synonyme_orthographique'] == $synonyme['num_nom']) {
$synonyme['statut'] = 'posséde des synonymes orthographiques';
} else {
$synonyme['statut'] = 'est synonyme orthographique du num_nom '.$synonyme['synonyme_orthographique'];
}
$this->donnees['fiche_synonymie']['orthographique'][] = $synonyme;
}
}
// recherche synonyme proparte
if ($this->donnees['info']['synonyme_proparte'] != ''){
$this->donnees['fiche_synonymie']['pro parte']['num_nom'] = $this->donnees['info']['synonyme_proparte'];
/* à modifier qd base corrigée ajouter split ";"
* si 1 fusion de ce nom pour donner synonyme proparte
* sinon division
*/
}
// recherche si taxon est un synonyme douteux
// synonyme douteux
if ($this->donnees['info']['synonyme_douteux'] == 1) {
$this->donnees['fiche_synonymie']['douteux']['num_nom'] = $this->donnees['info'];
}
/* si $this->donnees['info']['synonyme_mal_applique'] == 1 et $this->donnees['num_nom'] == $this->donnees['num_nom_retenu']
* nom possede des synonymes mal appliquees
* sinon si $this->donnees['info']['synonyme_mal_applique'] == 1 et $this->donnees['num_nom'] != $this->donnees['num_nom_retenu']
* nom est synonyme mal applique de num_nom_retenu
* si $this->donnees['info']['synonyme_orthographique'] == $this->donnees['num_nom']
* nom possede des synonymes orthographiques
* sinon $this->donnees['info']['synonyme_orthographique'] != ''
* nom est synonyme mal applique de $this->donnees['info']['synonyme_orthographique']
* si $this->donnees['info']['synonyme_proparte'] != ''
*
* si $this->donnees['info']['homonyme'] == 1 recherche sur nom
*/
// synonyme proparte
if ($this->donnees['info']['synonyme_proparte'] != ''){
$propartes = preg_split('/;/', $this->donnees['info']['synonyme_proparte']);
foreach ($propartes as $protarte) {
$this->donnees['fiche_synonymie']['pro parte'] =
$this->taxonDao->getTaxonAffichage($this->referentiel, $proparte);
}
}
// homonymie
$nom = $this->encodeChaine($this->donnees['info']['nom_complet']);
$homonyme = $this->taxonDao->getHomonyme($this->referentiel, $nom);
if (count($homonyme) > 1) {
$this->donnees['fiche_synonymie']['Homonymie (sensu)'] = $homonyme;
}
}
}
202,8 → 212,10
if ($this->donnees['num_nom_retenu'] != '') {
$class_inf = $this->taxonDao->getClassification
('Inferieur', $this->referentiel, $this->donnees['num_nom_retenu']);
$this->donnees['classification']['inférieurs'] = $class_inf['inf'];
$this->donnees['niveau'] = $class_inf['niveau'];
if ($class_inf != '') {
$this->donnees['classification']['inférieurs'] = $class_inf['inf'];
$this->donnees['niveau'] = $class_inf['niveau'];
}
}
}
242,6 → 254,14
return $parametres;
}
public function encodeChaine($chaine) {
if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
$chaine = mb_convert_encoding($chaine, Config::get('sortie_encodage'), Config::get('appli_encodage'));
}
$chaine = urlencode($chaine);
return $chaine;
}
// retourne l'url de la fiche taxon pour les liens
public static function getUrlFicheTaxon($params, $type) {
$taxon = null;
/trunk/services/modules/FicheTaxon.php
185,5 → 185,24
return $this->resultat;
}
public function getElementHomonyme($ref, $nom_complet) {
$requete = "SELECT num_nom_retenu, num_nom, nom_complet, auteur, annee, biblio_origine, homonyme, ".
" nom_addendum, nom_francais FROM {$ref} WHERE nom_complet = '{$nom_complet}';";
// Récupération des résultats
try {
$info = '';
$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
if ($donnees === array()) {
$this->messages[] = "La requête n'a retourné aucun résultat.";
} else {
$info = $donnees;
}
} catch (PDOException $e) {
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
}
return $info;
}
}
?>
/trunk/services/modules/Recherche.php
148,7 → 148,7
*/
public function getElementParTaxon($param) {
// Initialisation des variables
$info = array();
$info = '';
// Pré traitement des paramètres
$p = $this->pretraiterParametresUrl($param);
155,19 → 155,21
$referentiel = substr($p['ref'], 2, -2);
$liste_nom = $this->getNomRetenu($param);
// Construction de la requête
// si recherche des synonymes
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' num_nom, nom_complet, auteur, annee, '.
'biblio_origine, nom_addendum, num_nom_retenu, basionyme, synonyme_mal_applique FROM '.$referentiel.' WHERE num_nom_retenu IN ('
.$liste_nom.') ORDER BY num_nom ASC ';
try {
$info = '';
$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
$info = $donnees;
} catch (PDOException $e) {
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
}
if ($liste_nom != '') {
// Construction de la requête
// si recherche des synonymes
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' num_nom, nom_complet, auteur, annee, '.
'biblio_origine, nom_addendum, num_nom_retenu, basionyme, synonyme_mal_applique FROM '.$referentiel.' WHERE num_nom_retenu IN ('
.$liste_nom.') ORDER BY num_nom ASC ';
try {
$donnees = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
$info = $donnees;
} catch (PDOException $e) {
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
}
}
return $info;
}
/* Méthode pour récupérer une liste de noms retenus