Subversion Repositories eFlore/Applications.eflore-consultation

Compare Revisions

Ignore whitespace Rev 145 → Rev 146

/trunk/modules/resultat/AlphabFormateur.php
New file
0,0 → 1,64
<?php
class AlphabFormateur implements Formateur {
 
const TPL_VUE = 'resultat_liste_noms';
 
private $parametres = null;
private $surligneur = null;
private $trieur = null;
private $urls = null;
private $motsASurligner = array();
private $noms = array();
private $infosPourTpl = array();
 
public function __construct(ParametresResultats $parametres, Array $resultats, Surligneur $surligneur = null, Trieur $trieur = null, AppUrls $urls = null) {
$this->parametres = $parametres;
$this->noms = $resultats['resultat'];
$this->surligneur = (is_null($surligneur)) ? new Surligneur() : $surligneur;
$this->trieur = (is_null($trieur)) ? new Trieur() : $trieur;
$this->urls = (is_null($urls)) ? new AppUrls() : $urls;
}
 
public function getTplInfos() {
return $this->infosPourTpl;
}
 
public function getTplNom() {
return self::TPL_VUE;
}
 
public function formater() {
foreach ($this->noms as $id => $nom) {
$infosDuNom = array();
$infosDuNom['nomSci'] = $nom['nom_sci'];
$infosDuNom['retenu'] = $nom['retenu'];
$infosDuNom['urlFiche'] = $this->urls->obtenirUrlFiche($id);
 
$this->infosPourTpl['noms'][$id] = $infosDuNom;
}
}
 
public function trier() {
$this->trieur->setTableau($this->infosPourTpl['noms']);
$this->trieur->setChampsEtOrdres(array('nomSci' => SORT_ASC));
$this->infosPourTpl['noms'] = $this->trieur->trier();
}
 
public function surligner() {
$this->definirMotsASurligner();
foreach ($this->infosPourTpl['noms'] as $id => $nom) {
$this->infosPourTpl['noms'][$id]['nomSci'] = $this->surlignerMotsMasqueRecherche($nom['nomSci']);
}
}
 
private function definirMotsASurligner() {
$this->motsASurligner = explode(' ', $this->parametres->masqueRecherche);
}
 
private function surlignerMotsMasqueRecherche($nom) {
$this->surligneur->setTexte($nom);
$nom = $this->surligneur->surlignerMots($this->motsASurligner);
return $nom;
}
}
?>
/trunk/modules/resultat/Resultat.php
14,23 → 14,35
*/
class Resultat extends aControleur {
 
private $resultatType = 'determination';
private $masqueRecherche = '';
private $projetImg = 'cel';
private $reftaxCourant = 'bdtfx';
private $parametres = null;
private $resultats = null;
 
public function initialiser() {
spl_autoload_register(array($this, 'chargerClassesResultat'));
$this->parametres = new ParametresResultats();
$this->capturerParametres();
$this->reftaxCourant = Registre::get('parametres.referentiel');
$this->projetImg = Config::get($this->reftaxCourant.'.referentielImages');
$this->parametres->reftaxCourant = Registre::get('parametres.referentiel');
$this->parametres->projetImg = Config::get($this->parametres->reftaxCourant.'.referentielImages');
$this->resultats = Registre::get('resultats');
}
 
private function chargerClassesResultat($classe) {
$dossiers = array(dirname(__FILE__).DS);
foreach ($dossiers as $chemin) {
$fichierATester = $chemin.$classe.'.php';
if (file_exists($fichierATester)) {
include_once $fichierATester;
return null;
}
}
}
 
private function capturerParametres() {
if (isset($_GET['resultat'])) {
$this->resultatType = $_GET['resultat'];
$this->parametres->type = $_GET['resultat'];
}
if (isset($_GET['nom'])) {
$this->masqueRecherche = $_GET['nom'];
$this->parametres->masqueRecherche = $_GET['nom'];
}
}
 
39,198 → 51,25
}
 
public function executerResultat() {
$resultats = Registre::get('resultats');
$donnees = array();
$donnees['typeResultat'] = $this->resultatType;
$donnees['typeResultat'] = $this->parametres->type;
$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']);
$donnees['nbreTaxons'] = $this->resultats['entete']['total'];
$donnees['nomsHtml'] = $this->getNomsFormates();
 
$this->setSortie(self::RENDU_CORPS, $this->getVue('resultat', $donnees));
}
 
private function getNoms($resultats) {
$noms = null;
$methode = 'genererListe'.ucwords($this->resultatType);
$noms = $this->$methode($resultats);
return $noms;
private function getNomsFormates() {
$resultatFormateur = ResultatFormateurFabrique::creer($this->parametres, $this->resultats);
$resultatFormateur->formater();
$resultatFormateur->trier();
$resultatFormateur->surligner();
$html = $this->getVue($resultatFormateur->getTplNom(), $resultatFormateur->getTplInfos());
return $html;
}
 
private function genererListeAlphab($resultats) {
$noms = $this->trierParAlphabNaturel($resultats);
$noms = $this->surlignerNoms($noms);
 
$donnees = array();
$donnees['noms'] = $noms;
return $this->getVue('resultat_liste_noms', $donnees);
}
 
private function surlignerNoms($noms) {
foreach ($noms as $id => $nom) {
$noms[$id]['nom_sci'] = $this->surlignerMotsMasqueRecherche($nom['nom_sci']);
}
return $noms;
}
 
private function surlignerMotsMasqueRecherche($nom) {
$mots = explode(' ', $this->masqueRecherche);
$surligneur = new Surligneur();
$surligneur->setTexte($nom);
$nom = $surligneur->surlignerMots($mots);
return $nom;
}
 
private function surlignerMotDansTxt($mot, $txt){
$ind = stripos($txt, $mot);
$len = strlen($mot);
$surlignage = $txt;
if ($ind !== false){
$debut = substr($txt, 0, $ind);
$milieu = substr($txt, $ind, $len);
$fin = $this->surlignerMotDansTxt($mot, substr($txt, $ind + $len));
$surlignage = $debut.'<span class="surlignage">'.$milieu.'</span>'.$fin;
}
return $surlignage;
}
 
private function trierParAlphabNaturel($noms) {
$noms = Tableau::trierMDType($noms, array('nom_sci' => SORT_ASC), Tableau::TRI_NATUREL);
return $noms;
}
 
private function genererListeRetenu($resultats) {
$noms = $this->trierParNomsRetenus($resultats);
$noms = $this->surlignerNoms($noms);
$donnees = array();
$donnees['noms'] = $noms;
return $this->getVue('resultat_liste_noms', $donnees);
}
 
private function trierParNomsRetenus($noms) {
$nomsRetenus = array();
$nomsSynonymes = array();
foreach ($noms as $id => $nom) {
if ($nom['retenu'] == 'true') {
$nomsRetenus[$id] = $nom;
} else {
$nomsSynonymes[$id] = $nom;
}
}
$nomsRetenus = Tableau::trierMDType($nomsRetenus, array('nom_sci' => SORT_ASC), Tableau::TRI_NATUREL);
$nomsSynonymes = Tableau::trierMDType($nomsSynonymes, array('nom_sci' => SORT_ASC), Tableau::TRI_NATUREL);
$noms = array_merge($nomsRetenus, $nomsSynonymes);
return $noms;
}
 
private function genererListeDetermination($resultats) {
$donnees = array();
$donnees['imagesUrls'] = $this->obtenirUrlsPhotos($resultats);
$noms = $this->extraireNomsPourDetermination($resultats);
$donnees['nomsSansCorrespondance'] = isset($noms['nsc']) ? $noms['nsc'] : false;
$noms = isset($noms['nac']) ? $noms['nac'] : false;
 
if ($noms) {
$noms = $this->tierNomsPourDetermination($noms);
$noms = $this->surlignerNomsPourDetermination($noms);
}
$donnees['noms'] = $noms;
return $this->getVue('resultat_determination_noms', $donnees);
}
 
private function obtenirUrlsPhotos($noms) {
$ids = $this->extraireIdDesNoms($noms);
$Images = new Images($this->projetImg);
$urls = $Images->getUrlsImagesParIdsNoms($ids);
$urlsReftaxCourant = $this->supprimerCodeReftaxDesIds($urls);
return $urlsReftaxCourant;
}
 
private function extraireIdDesNoms($noms) {
$ids = array();
foreach ($noms as $id => $nom) {
$ids[] = $id;
}
return $ids;
}
 
private function supprimerCodeReftaxDesIds($urls) {
$codeReftax = $this->reftaxCourant.'.';
foreach ($urls as $id => $url) {
$id = str_replace($codeReftax, '', $id);
$urls[$id] = $url;
}
return $urls;
}
 
private function extraireNomsPourDetermination($noms) {
$nomsSansCorrespondance = array();
$nomsAvecCorrespondance = array();
foreach ($noms as $idNomCourant => $nom) {
if ($nom['retenu'] == 'true') {
$nomRetenu = array();
$nomRetenu['nom_sci_retenu'] = $nom['nom_sci'];
$nomRetenu['url'] = $this->obtenirUrlFiche($idNomCourant);
$nomsAvecCorrespondance[$idNomCourant] = $nomRetenu;
} else {
if ($nom['nom_retenu'] == null) {
$nomsSansCorrespondance[$idNomCourant] = $nom['nom_sci'];
} else {
$idNomRetenu = $nom['nom_retenu.id'];
if (array_key_exists($nom['nom_retenu.id'], $nomsAvecCorrespondance) == false) {
$nomRetenu = array();
$nomRetenu['nom_sci_retenu'] = $nom['nom_retenu'];
$nomRetenu['url'] = $this->obtenirUrlFiche($idNomRetenu);
$nomsAvecCorrespondance[$idNomRetenu] = $nomRetenu;
}
$nomsAvecCorrespondance[$idNomRetenu]['synonymes'][] = array('nn' => $idNomCourant, 'nom_sci' => $nom['nom_sci']);
}
 
}
}
$nomsPourDetermination = array();
if (count($nomsSansCorrespondance) > 0) {
$nomsPourDetermination['nsc'] = $nomsSansCorrespondance;
}
if (count($nomsAvecCorrespondance) > 0) {
$nomsPourDetermination['nac'] = $nomsAvecCorrespondance;
}
return $nomsPourDetermination;
}
 
public function tierNomsPourDetermination($noms) {
$nom_demande_ss = strtolower(Chaine::supprimerAccents($this->masqueRecherche));
foreach ($noms as $id => $nom) {
$nom_flou_ss = strtolower(Chaine::supprimerAccents($nom['nom_sci_retenu']));
$stat = array();
// Prime pour la ressemblance globale :
$score = 500 - levenshtein($nom_flou_ss, $nom_demande_ss);
// On affine
$score = $score + (similar_text($nom_demande_ss, $nom_flou_ss) * 3);
$nom['score'] = $score;
$noms[$id] = $nom;
}
$noms = Tableau::trierMD($noms, array('score' => SORT_DESC));
return $noms;
}
 
private function surlignerNomsPourDetermination($noms) {
foreach ($noms as $idNom => $nom) {
$nom['nom_sci_retenu'] = $this->surlignerMotsMasqueRecherche($nom['nom_sci_retenu']);
if (isset($nom['synonymes'])) {
foreach ($nom['synonymes'] as $idSyn => $synonyme) {
$nom['synonymes'][$idSyn]['nom_sci'] = $this->surlignerMotsMasqueRecherche($synonyme['nom_sci']);
}
}
$noms[$idNom] = $nom;
}
return $noms;
}
 
private function genererListeDecompo($noms) {
return '<p>À réaliser</p>';
}
}
?>
/trunk/modules/resultat/Formateur.php
New file
0,0 → 1,10
<?php
interface Formateur {
public function __construct(ParametresResultats $parametres, Array $resultats, Surligneur $surligneur = null, Trieur $trieur = null, AppUrls $urls = null);
public function getTplInfos();
public function getTplNom();
public function formater();
public function trier();
public function surligner();
}
?>
/trunk/modules/resultat/DeterminationFormateur.php
New file
0,0 → 1,159
<?php
class DeterminationFormateur implements Formateur {
 
const TPL_VUE = 'resultat_determination_noms';
 
private $parametres = null;
private $surligneur = null;
private $trieur = null;
private $urls = null;
private $fusioneur = null;
private $manipulateurDeChaine = null;
private $imagesService = null;
 
private $motsASurligner = array();
private $noms = array();
private $infosPourTpl = array();
 
public function __construct(ParametresResultats $parametres, Array $resultats,
Surligneur $surligneur = null, Trieur $trieur = null, AppUrls $urls = null,
ChaineManipulateur $manipulateurDeChaine = null, Images $imagesService = null) {
 
$this->parametres = $parametres;
$this->noms = $resultats['resultat'];
$this->surligneur = (is_null($surligneur)) ? new Surligneur() : $surligneur;
$this->trieur = (is_null($trieur)) ? new Trieur() : $trieur;
$this->urls = (is_null($urls)) ? new AppUrls() : $urls;
$this->manipulateurDeChaine = is_null($manipulateurDeChaine) ? new ChaineManipulateur() : $manipulateurDeChaine;
$this->imagesService = is_null($imagesService) ? new Images($this->parametres->projetImg) : $imagesService;
}
 
public function getTplInfos() {
return $this->infosPourTpl;
}
 
public function getTplNom() {
return self::TPL_VUE;
}
 
public function formater() {
$this->obtenirUrlsPhotos();
$this->extraireInfosNomsPourTplDetermination();
}
 
private function obtenirUrlsPhotos() {
$ids = $this->extraireIdDesNoms();
 
$urls = $this->imagesService->getUrlsImagesParIdsNoms($ids);
 
$this->infosPourTpl['imagesUrls'] = $this->supprimerCodeReftaxDesIds($urls);
}
 
private function extraireIdDesNoms() {
$ids = array();
foreach ($this->noms as $id => $nom) {
$idAAjouter = $id;
if (is_numeric($idAAjouter)) {
$ids[] = $idAAjouter;
}
if (array_key_exists('nom_retenu.id', $nom)) {
if (in_array($nom['nom_retenu.id'], $ids) == false) {
$idAAjouter = $nom['nom_retenu.id'];
if (is_numeric($idAAjouter)) {
$ids[] = $idAAjouter;
}
}
}
}
return $ids;
}
 
private function supprimerCodeReftaxDesIds($urls) {
$codeReftax = $this->parametres->reftaxCourant.'.';
$urlsNettoyees = array();
foreach ($urls as $id => $url) {
$id = str_replace($codeReftax, '', $id);
$urlsNettoyees[$id] = $url;
}
return $urlsNettoyees;
}
 
private function extraireInfosNomsPourTplDetermination() {
$nomsSansCorrespondance = array();
$nomsAvecCorrespondance = array();
foreach ($this->noms as $idNomCourant => $nom) {
if ($nom['retenu'] == 'true') {
$nomRetenu = array();
$nomRetenu['nomSciRetenu'] = $nom['nom_sci'];
$nomRetenu['urlFiche'] = $this->urls->obtenirUrlFiche($idNomCourant);
$nomsAvecCorrespondance[$idNomCourant] = $nomRetenu;
} else {
if ($nom['nom_retenu'] == null) {
$nomsSansCorrespondance[$idNomCourant] = $nom['nom_sci'];
} else {
$idNomRetenu = $nom['nom_retenu.id'];
if (array_key_exists($nom['nom_retenu.id'], $nomsAvecCorrespondance) == false) {
$nomRetenu = array();
$nomRetenu['nomSciRetenu'] = $nom['nom_retenu'];
$nomRetenu['urlFiche'] = $this->urls->obtenirUrlFiche($idNomRetenu);
$nomsAvecCorrespondance[$idNomRetenu] = $nomRetenu;
}
$synonyme = array();
$synonyme['nn'] = $idNomCourant;
$synonyme['nomSci'] = $nom['nom_sci'];
$synonyme['urlFiche'] = $this->urls->obtenirUrlFiche($idNomCourant);
$nomsAvecCorrespondance[$idNomRetenu]['synonymes'][] = $synonyme;
}
 
}
}
 
$this->infosPourTpl['nomsSansCorrespondance'] = (count($nomsSansCorrespondance) > 0) ? $nomsSansCorrespondance : false;
$this->infosPourTpl['noms'] = (count($nomsAvecCorrespondance) > 0) ? $nomsAvecCorrespondance : false;
}
 
public function trier() {
$this->ajouterAuxNomsScoreSimilariteAvec($this->parametres->masqueRecherche);
$this->trieur->setTableau($this->infosPourTpl['noms']);
$this->trieur->setChampsEtOrdres(array('score' => SORT_DESC));
$this->infosPourTpl['noms'] = $this->trieur->trier();
}
 
private function ajouterAuxNomsScoreSimilariteAvec($masque) {
$nom_demande_ss = strtolower($this->manipulateurDeChaine->supprimerAccents($masque));
foreach ($this->infosPourTpl['noms'] as $id => $nom) {
$nom_flou_ss = strtolower($this->manipulateurDeChaine->supprimerAccents($nom['nomSciRetenu']));
$stat = array();
// Prime pour la ressemblance globale :
$score = 500 - levenshtein($nom_flou_ss, $nom_demande_ss);
// On affine
$score = $score + (similar_text($nom_demande_ss, $nom_flou_ss) * 3);
$nom['score'] = $score;
$this->infosPourTpl['noms'][$id] = $nom;
}
}
 
public function surligner() {
$this->definirMotsASurligner();
foreach ($this->infosPourTpl['noms'] as $idNom => $nom) {
$nom['nomSciRetenu'] = $this->surlignerMotsMasqueRecherche($nom['nomSciRetenu']);
if (isset($nom['synonymes'])) {
foreach ($nom['synonymes'] as $idSyn => $synonyme) {
$nom['synonymes'][$idSyn]['nomSci'] = $this->surlignerMotsMasqueRecherche($synonyme['nomSci']);
}
}
$this->infosPourTpl['noms'][$idNom] = $nom;
}
}
 
private function definirMotsASurligner() {
$this->motsASurligner = explode(' ', $this->parametres->masqueRecherche);
}
 
private function surlignerMotsMasqueRecherche($nom) {
$this->surligneur->setTexte($nom);
$nom = $this->surligneur->surlignerMots($this->motsASurligner);
return $nom;
}
}
?>
/trunk/modules/resultat/ResultatFormateurFabrique.php
New file
0,0 → 1,15
<?php
class ResultatFormateurFabrique {
 
public static function creer(ParametresResultats $parametres, Array $resultats){
$type = ucwords($parametres->type);
$ResultatFormateurClasse = $type.'Formateur';
$chemin = dirname(__FILE__).DS.$ResultatFormateurClasse.'.php';
$ResultatFormateur = null;
if (file_exists($chemin)) {
$ResultatFormateur = new $ResultatFormateurClasse($parametres, $resultats);
}
return $ResultatFormateur;
}
}
?>
/trunk/modules/resultat/RetenuFormateur.php
New file
0,0 → 1,87
<?php
class RetenuFormateur implements Formateur {
 
const TPL_VUE = 'resultat_liste_noms';
 
private $parametres = null;
private $surligneur = null;
private $trieur = null;
private $urls = null;
private $fusioneur = null;
 
private $motsASurligner = array();
private $noms = array();
private $infosPourTpl = array();
 
public function __construct(ParametresResultats $parametres, Array $resultats, Surligneur $surligneur = null,
Trieur $trieur = null, AppUrls $urls = null, TableauManipulateur $tableau = null) {
$this->parametres = $parametres;
$this->noms = $resultats['resultat'];
$this->surligneur = (is_null($surligneur)) ? new Surligneur() : $surligneur;
$this->trieur = (is_null($trieur)) ? new Trieur() : $trieur;
$this->urls = (is_null($urls)) ? new AppUrls() : $urls;
$this->fusioneur = (is_null($tableau)) ? new TableauManipulateur() : $tableau;
}
 
public function getTplInfos() {
return $this->infosPourTpl;
}
 
public function getTplNom() {
return self::TPL_VUE;
}
 
public function formater() {
foreach ($this->noms as $id => $nom) {
$infosDuNom = array();
$infosDuNom['nomSci'] = $nom['nom_sci'];
$infosDuNom['retenu'] = $nom['retenu'];
$infosDuNom['urlFiche'] = $this->urls->obtenirUrlFiche($id);
 
$this->infosPourTpl['noms'][$id] = $infosDuNom;
}
}
 
public function trier() {
$nomsRetenus = array();
$nomsSynonymes = array();
 
foreach ($this->infosPourTpl['noms'] as $id => $nom) {
if ($nom['retenu'] == 'true') {
$nomsRetenus[$id] = $nom;
} else {
$nomsSynonymes[$id] = $nom;
}
}
 
$this->trieur->setTableau($nomsRetenus);
$this->trieur->setChampsEtOrdres(array('nomSci' => SORT_ASC));
$nomsRetenus = $this->trieur->trier();
 
$this->trieur->setTableau($nomsSynonymes);
$this->trieur->setChampsEtOrdres(array('nomSci' => SORT_ASC));
$nomsSynonymes = $this->trieur->trier();
 
$this->fusioneur->setTableau($nomsRetenus);
$this->fusioneur->etendreAvec($nomsSynonymes);
$this->infosPourTpl['noms'] = $this->fusioneur->getTableau();
}
 
public function surligner() {
$this->definirMotsASurligner();
foreach ($this->infosPourTpl['noms'] as $id => $nom) {
$this->infosPourTpl['noms'][$id]['nomSci'] = $this->surlignerMotsMasqueRecherche($nom['nomSci']);
}
}
 
private function definirMotsASurligner() {
$this->motsASurligner = explode(' ', $this->parametres->masqueRecherche);
}
 
private function surlignerMotsMasqueRecherche($nom) {
$this->surligneur->setTexte($nom);
$nom = $this->surligneur->surlignerMots($this->motsASurligner);
return $nom;
}
}
?>
/trunk/modules/resultat/squelettes/decomposition.tpl.html
New file
0,0 → 1,0
<p>À réaliser</p>
/trunk/modules/resultat/squelettes/resultat_liste_noms.tpl.html
1,11 → 1,11
<ol>
<? foreach ($noms as $id => $nom) : ?>
<li>
<a href="#">
<a href="<?=$nom['urlFiche']?>">
<?php if ($nom['retenu'] == 'true') : ?>
<strong class="nom-sci-retenu"><?=$nom['nom_sci']?></strong>
<strong class="nom-sci-retenu"><?=$nom['nomSci']?></strong>
<?php else : ?>
<?=$nom['nom_sci']?>
<?=$nom['nomSci']?>
<?php endif; ?>
</a>
</li>
/trunk/modules/resultat/squelettes/resultat_determination_noms.tpl.html
2,8 → 2,8
<?php if ($noms) : ?>
<? foreach ($noms as $nnTaxon => $nom) : ?>
<li class="zone-resultat">
<a href="<?=$nom['url']?>">
<strong class="nom-sci-retenu"><?=$nom['nom_sci_retenu']?></strong>
<a href="<?=$nom['urlFiche']?>">
<strong class="nom-sci-retenu"><?=$nom['nomSciRetenu']?></strong>
</a>
<?php if (isset($imagesUrls[$nnTaxon])) : ?>
<img src="<?=$imagesUrls[$nnTaxon][0]?>" style="width:100px;height:100px;display:block;float:right;"/>
13,7 → 13,7
<ul class="synonymes" style="width:100%;">
<?php for ($i = 0; ($i < 3); $i++) : ?>
<?php if (isset($nom['synonymes'][$i])) : ?>
<li>= <?=$nom['synonymes'][$i]['nom_sci']?></li>
<li>= <?=$nom['synonymes'][$i]['nomSci']?></li>
<?php endif; ?>
<? endfor; ?>
<?php if ($nbrSynonymes > 3) : ?>
20,7 → 20,7
<li class="synonymes-autres">
<ul>
<?php for ($i = 3; $i < $nbrSynonymes; $i++) : ?>
<li>= <?=$nom['synonymes'][$i]['nom_sci']?></li>
<li>= <?=$nom['synonymes'][$i]['nomSci']?></li>
<? endfor; ?>
</ul>
</li>
/trunk/modules/resultat/ParametresResultats.php
New file
0,0 → 1,8
<?php
class ParametresResultats {
public $type = 'determination';
public $masqueRecherche = '';
public $reftaxCourant = 'bdtfx';
public $projetImg = 'cel';
}
?>
/trunk/modules/resultat/DecompoFormateur.php
New file
0,0 → 1,16
<?php
class DecompoFormateur implements Formateur {
 
private $resultats = null;
 
public function __construct(ParametresResultats $resultats) {
$this->resultats = $resultats;
}
 
public function formater() {
$donnees = array();
$donnees['vue'] = 'decomposition';
return $donnees;
}
}
?>