Subversion Repositories eFlore/Applications.eflore-consultation

Compare Revisions

Ignore whitespace Rev 105 → Rev 106

/trunk/controleurs/aControleur.php
13,7 → 13,7
* @version $Id$
*/
abstract class aControleur extends Controleur {
 
const META_TITRE = 'titre';
const META_DESCRIPTION = 'description';
const META_TAGS = 'tags';
22,27 → 22,27
const RENDU_PIED = 'pied';
const RENDU_NAVIGATION = 'navigation';
const RENDU_MENU = 'menu';
 
private $sortie = array();
protected $urlBase = null;
protected $urlCourante = null;
 
public function __construct() {
$chemin = Config::get('chemin_modules').
AppControleur::getNomDossierDepuisClasse(get_class($this)).DS.
Config::get('dossier_squelettes').DS;
Registre::set('tbf.chemin_squelettes', $chemin);
 
$this->urlBase = Registre::get('eFlore.urlBase');
$this->urlCourante = Registre::get('eFlore.urlCourante');
$this->urlRedirection = Registre::get('eFlore.urlRedirection');
 
parent::__construct();
}
 
//+------------------------------------------------------------------------------------------------------+
// GESTION de l'AFFICHAGE en SORTIE
 
/**
* Attribue une position de sortie à un contenu.
*/
59,7 → 59,7
}
}
}
 
/**
* Vérifie l'existence du type de sortie indiqué pour son utilisation dans le tableau de sortie.
* @param string le type de sortie à tester.
80,7 → 80,7
}
return $existe;
}
 
/**
* Retourne le tableau de sortie à utiliser dans le controleur principal de l'application.
*/
123,13 → 123,13
} else {
$m = "La méthode '$action' du controleur '$ClasseModule' est introuvable.";
trigger_error($m, E_USER_ERROR);
}
}
}
 
//+------------------------------------------------------------------------------------------------------+
// GESTION du VUES COMMUNES
/**
* Charge un squelette de vue depuis l'emplacement commune.
* Charge un squelette de vue depuis l'emplacement commune.
* @param String $tpl le nom du squelette à charger sans l'extenssion de fichier.
* @param Array $donnees les données à passer au squelette PHP.
*/
140,7 → 140,7
$this->setCheminSquelette($cheminOrigine);
return $vue;
}
 
/**
* Pour mutualiser la création du pied de page de l'application, sa gestion est gérée dans cette classe.
*/
148,10 → 148,10
$donnees['appli'] = Framework::getInfoAppli();
$donnees['i18n'] = array_merge(I18n::get('Entete'), I18n::get('General'));
$donnees['referentiel_titre'] = I18n::get('Referentiels-titres.'.Registre::get('parametres.referentiel'));
 
$this->setSortie(self::RENDU_TETE, $this->getVueCommune('entete_page', $donnees));
}
 
/**
* Pour mutualiser la création du menu de l'application, sa gestion est gérée dans cette classe.
*/
159,10 → 159,10
$donnees['appli'] = Framework::getInfoAppli();
$donnees['i18n'] = array_merge(I18n::get('Pied'), I18n::get('General'));
$donnees['courrielContact'] = Config::get('courriel_contact');
 
$this->setSortie(self::RENDU_MENU, $this->getVueCommune('menu', $donnees));
}
 
/**
* Pour mutualiser la création du pied de page de l'application, sa gestion est gérée dans cette classe.
*/
170,10 → 170,10
$donnees['appli'] = Framework::getInfoAppli();
$donnees['i18n'] = array_merge(I18n::get('Pied'), I18n::get('General'));
$donnees['courrielContact'] = Config::get('courriel_contact');
 
$this->setSortie(self::RENDU_PIED, $this->getVueCommune('pied_page', $donnees));
}
 
//+------------------------------------------------------------------------------------------------------+
// GESTION du CHARGEMENT des CLASSES MÉTIERS
protected function getEfloreNoms() {
182,7 → 182,7
}
return $this->EfloreNoms;
}
 
protected function getEfloreTaxons() {
if (! isset($this->EfloreTaxons)) {
$this->EfloreTaxons = new Taxons();
189,7 → 189,7
}
return $this->EfloreTaxons;
}
 
//+------------------------------------------------------------------------------------------------------+
// GESTION des URLs
protected function obtenirUrlBase() {
196,12 → 196,12
$url = $this->urlBase->getURL();
return $url;
}
 
protected function redirigerVers($url) {
$url = str_replace('&', '&', $url);
header("Location: $url");
}
 
private function getParametresUrlListe() {
$parametres = array(
'referentiel' => Registre::get('parametres.referentiel'),
212,7 → 212,7
);
return $parametres;
}
 
protected function obtenirUrlListeFamille() {
$parametres = $this->getParametresUrlListe();
$parametres['rang'] = 'F';
220,7 → 220,7
$url = $this->urlBase->getURL();
return $url;
}
 
protected function obtenirUrlListeGenre() {
$parametres = $this->getParametresUrlListe();
$parametres['rang'] = 'G';
228,7 → 228,7
$url = $this->urlBase->getURL();
return $url;
}
 
private function getParametresUrlRecherche() {
$parametres = array(
'referentiel' => Registre::get('parametres.referentiel'),
238,7 → 238,7
);
return $parametres;
}
 
protected function obtenirUrlRechercheSimple($nom = null, $type = 'nom_scientifique') {
$parametres = $this->getParametresUrlRecherche();
$parametres['type_nom'] = $type;
247,7 → 247,7
$url = $this->urlBase->getURL();
return $url;
}
 
private function getParametresUrlResultat() {
$parametres = array(
'referentiel' => Registre::get('parametres.referentiel'),
259,15 → 259,23
);
return $parametres;
}
protected function obtenirUrlResultatClassique() {
 
protected function obtenirUrlResultatDetermination() {
$parametres = $this->getParametresUrlResultat();
$parametres['resultat'] = 'classique';
$parametres['resultat'] = 'determination';
$this->urlBase->setRequete($parametres);
$url = $this->urlBase->getURL();
return $url;
}
 
protected function obtenirUrlResultatAlphab() {
$parametres = $this->getParametresUrlResultat();
$parametres['resultat'] = 'alphab';
$this->urlBase->setRequete($parametres);
$url = $this->urlBase->getURL();
return $url;
}
 
protected function obtenirUrlResultatRetenu() {
$parametres = $this->getParametresUrlResultat();
$parametres['resultat'] = 'retenu';
275,15 → 283,17
$url = $this->urlBase->getURL();
return $url;
}
protected function obtenirUrlResultatDetermination() {
 
protected function obtenirUrlResultatDecompo() {
$parametres = $this->getParametresUrlResultat();
$parametres['resultat'] = 'determination';
$parametres['resultat'] = 'decompo';
$this->urlBase->setRequete($parametres);
$url = $this->urlBase->getURL();
return $url;
}
 
 
 
private function getParametresUrlFiche() {
$parametres = array(
'referentiel' => Registre::get('parametres.referentiel'),
292,7 → 302,7
);
return $parametres;
}
 
protected function obtenirUrlFiche($numNom) {
$parametres = $this->getParametresUrlFiche();
$parametres['nn'] = $numNom;
/trunk/modules/resultat/squelettes/resultat_determination_noms.tpl.html
1,14 → 1,26
<ol>
<? foreach ($noms as $id => $nom) : ?>
<li>
<ul id="ef-resultats-determination">
<? foreach ($noms as $nnTaxon => $nom) : ?>
<li style="min-height:101px;">
<a href="<?=$nom['url']?>">
<strong class="nom-sci-retenu"><?=$nom['nom_sci']?></strong>
<?php if ($nom['retenu'] !== 'true') : ?>
<?php foreach ($nom['synonymes'] as $id_syn => $synonyme) : ?>
<?=$synonyme?>,
<strong class="nom-sci-retenu"><?=$nom['nom_sci_retenu']?></strong>
</a>
<img src="http://localhost/service:eflore:0.1/cel/images?masque.nn=<?=$nnTaxon?>&retour.format=CXS" style="display:block;float:right;"/>
<?php if (isset($nom['synonymes'])) : ?>
<ul class="synonymes" style="width:50%;">
<?php foreach ($nom['synonymes'] as $synonyme) : ?>
<li>= <?=$synonyme?></li>
<? endforeach; ?>
</ul>
<?php endif; ?>
</a>
</li>
<? endforeach; ?>
</ol>
</ul>
<script>
//Déclenchement d'actions quand JQuery et le document HTML sont OK
$(document).ready(function() {
});
 
</script>
/trunk/modules/resultat/squelettes/resultat.tpl.html
1,11 → 1,18
<h1>Résultats trouvés : <?=$nbreTaxons?></h1>
 
<ul class="onglets">
<li><a href="<?=$urlResDetermination?>">Détermination</a></li>
<li><a href="<?=$urlResClassique?>">Classique</a></li>
<li><a href="<?=$urlResRetenu?>">Noms retenus en 1er</a></li>
<li><a href="<?=$urlResDecompo?>">Décomposé</a></li>
<li><a href="<?=$urlResTaxo?>">Taxonomique</a></li>
<li <?=($typeResultat == 'determination' ? 'class="menu_actif"': '')?>>
<a href="<?=$urlResDetermination?>">Détermination</a>
</li>
<li <?=($typeResultat == 'alphab' ? 'class="menu_actif"': '')?>>
<a href="<?=$urlResAlphab?>">Alphabétique</a>
</li>
<li <?=($typeResultat == 'retenu' ? 'class="menu_actif"': '')?>>
<a href="<?=$urlResRetenu?>">Noms retenus en 1er</a>
</li>
<li <?=($typeResultat == 'decompo' ? 'class="menu_actif"': '')?>>
<a href="<?=$urlResDecompo?>">Décomposé</a>
</li>
</ul>
 
<?=$nomsHtml?>
/trunk/modules/resultat/Resultat.php
13,13 → 13,13
* @version $Id$
*/
class Resultat extends aControleur {
 
private $resultatType = 'determination';
 
public function initialiser() {
$this->capturerParametres();
}
 
private function capturerParametres() {
Debug::printr($_GET);
if (isset($_GET['resultat'])) {
26,50 → 26,50
$this->resultatType = $_GET['resultat'];
}
}
 
public function executerActionParDefaut() {
$this->executerResultat();
}
 
public function executerResultat() {
$resultats = Registre::get('resultats');
$donnees = array();
Debug::printr(Registre);
$donnees = array();
$donnees['typeResultat'] = $this->resultatType;
$donnees['urlResClassique'] = $this->obtenirUrlResultatClassique();
$donnees['urlResAlphab'] = $this->obtenirUrlResultatAlphab();
$donnees['urlResRetenu'] = $this->obtenirUrlResultatRetenu();
$donnees['urlResDetermination'] = $this->obtenirUrlResultatDetermination();
$donnees['urlResDecompo'] = $this->obtenirUrlResultatDecompo();
$donnees['nbreTaxons'] = $resultats['entete']['total'];
$donnees['nomsHtml'] = $this->getNoms($resultats['resultat']);
 
$this->setSortie(self::RENDU_CORPS, $this->getVue('resultat', $donnees));
}
 
private function getNoms($resultats) {
$noms = null;
$methode = 'genererListe'.ucwords($this->resultatType);
Debug::printr($methode);
$noms = $this->$methode($resultats);
return $noms;
}
private function genererListeClassique($resultats) {
 
private function genererListeAlphab($resultats) {
$donnees = array();
$donnees['noms'] = $this->trierParNoms($resultats);
return $this->getVue('resultat_liste_noms', $donnees);
}
 
private function trierParNoms($noms) {
$noms = Tableau::trierTableauMd($noms, array('nom_sci' => SORT_ASC));
return $noms;
}
 
private function genererListeRetenu($resultats) {
$donnees = array();
$donnees['noms'] = $this->trierParNomsRetenus($resultats);
return $this->getVue('resultat_liste_noms', $donnees);
}
 
private function trierParNomsRetenus($noms) {
$nomsRetenus = array();
$nomsSynonymes = array();
85,7 → 85,7
$noms = array_merge($nomsRetenus, $nomsSynonymes);
return $noms;
}
 
private function genererListeDetermination($resultats) {
$donnees = array();
$donnees['noms'] = $this->trierSynonymes($resultats);
94,22 → 94,30
 
private function trierSynonymes($noms) {
$nomsRetenus = array();
foreach ($noms as $id => $nom) {
 
foreach ($noms as $idNomCourant => $nom) {
if ($nom['retenu'] == 'true') {
$nomsRetenus[$id] = $nom;
$nomsRetenus[$id]['url'] = $this->obtenirUrlFiche($id);
} elseif ((!isset($nomsRetenus['nom_retenu.id']) ||
(isset($nomsRetenus['nom_retenu.id']) && $nomsRetenus['nom_retenu.id']['retenu'] == false))) {
$nomsRetenus['nom_retenu.id']['synonymes'][$id] = $nom['nom_sci'];
$nomsRetenus['nom_retenu.id']['retenu'] = false;
$nomsRetenus['nom_retenu.id']['nom_sci'] = $nom['nom_retenu'];
$nomsRetenus['nom_retenu.id']['url'] = $this->obtenirUrlFiche($nom['nom_retenu.id']);
$nomRetenu = array();
$nomRetenu['nom_sci_retenu'] = $nom['nom_sci'];
$nomRetenu['url'] = $this->obtenirUrlFiche($idNomCourant);
$nomsRetenus[$idNomCourant] = $nomRetenu;
} else {
$idNomRetenu = $nom['nom_retenu.id'];
if (array_key_exists($nom['nom_retenu.id'], $nomsRetenus) == false) {
$nomRetenu = array();
$nomRetenu['nom_sci_retenu'] = $nom['nom_retenu'];
$nomRetenu['url'] = $this->obtenirUrlFiche($idNomRetenu);
$nomsRetenus[$idNomRetenu] = $nomRetenu;
}
$nomsRetenus[$idNomRetenu]['synonymes'][$idNomCourant] = $nom['nom_sci'];
}
}
$nomsRetenus = Tableau::trierTableauMd($nomsRetenus, array('nom_sci' => SORT_ASC));
$nomsRetenus = Tableau::trierMDType($nomsRetenus, array('nom_sci_retenu' => SORT_ASC), Tableau::TRI_NATUREL);
return $nomsRetenus;
}
 
private function genererListeDecompo($noms) {
return '<p>À réaliser</p>';
}
}
?>