Subversion Repositories eFlore/Applications.eflore-consultation

Compare Revisions

Ignore whitespace Rev 129 → Rev 130

/trunk/metier/api_0.1/Images.php
New file
0,0 → 1,39
<?php
// declare(encoding='UTF-8');
/**
* Classe gérant les images.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright 2011 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
class Images extends Eflore {
 
public function getUrlsImagesParIdsNoms(Array $idsNoms) {
$infosImages = $this->getInfosImagesParIdsNoms($idsNoms);
$urls = array();
foreach ($infosImages['resultats'] as $img) {
$id = $img['determination.nom_sci.code'];
$urls[$id][] = $img['binaire.href'];
}
return $urls;
}
 
public function getInfosImagesParIdsNoms(Array $idsNoms) {
$url = $this->getUrlImagesParIdsNoms($idsNoms);
return $this->chargerDonnees($url);
}
 
private function getUrlImagesParIdsNoms($idsNoms) {
$tpl = Config::get('imagesResultatsDeterminationTpl');
$params = array('idsNoms' => implode(',', $idsNoms));
$url = $this->formaterUrl($tpl, $params);
return $url;
}
}
?>
/trunk/modules/resultat/Resultat.php
21,7 → 21,6
}
 
private function capturerParametres() {
Debug::printr($_GET);
if (isset($_GET['resultat'])) {
$this->resultatType = $_GET['resultat'];
}
33,7 → 32,6
 
public function executerResultat() {
$resultats = Registre::get('resultats');
Debug::printr(Registre);
$donnees = array();
$donnees['typeResultat'] = $this->resultatType;
$donnees['urlResAlphab'] = $this->obtenirUrlResultatAlphab();
60,7 → 58,7
}
 
private function trierParNoms($noms) {
$noms = Tableau::trierTableauMd($noms, array('nom_sci' => SORT_ASC));
$noms = Tableau::trierMD($noms, array('nom_sci' => SORT_ASC));
return $noms;
}
 
88,13 → 86,31
 
private function genererListeDetermination($resultats) {
$donnees = array();
$donnees['imagesUrls'] = $this->obtenirUrlsImages($resultats);
$donnees['noms'] = $this->trierSynonymes($resultats);
return $this->getVue('resultat_determination_noms', $donnees);
}
 
private function obtenirUrlsImages($noms) {
$ids = array();
foreach ($noms as $id => $nom) {
$ids[] = $id;
}
$reftax = Registre::get('parametres.referentiel');
$projetImg = Config::get("$reftax.referentielImages");
$Images = new Images($projetImg);
$urls = $Images->getUrlsImagesParIdsNoms($ids);
$urlsReftaxCourant = array();
foreach ($urls as $id => $url) {
$id = str_replace("$reftax.", '', $id);
$urlsReftaxCourant[$id] = $url;
}
return $urlsReftaxCourant;
}
 
private function trierSynonymes($noms) {
$nomsSansCorrespondance = array();
$nomsRetenus = array();
 
foreach ($noms as $idNomCourant => $nom) {
if ($nom['retenu'] == 'true') {
$nomRetenu = array();
102,17 → 118,23
$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;
if ($nom['nom_retenu'] == null) {
$nomsSansCorrespondance[] = array('nn' => $idNomCourant, 'nom_sci' => $nom['nom_sci']);
} 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'][] = array('nn' => $idNomCourant, 'nom_sci' => $nom['nom_sci']);
}
$nomsRetenus[$idNomRetenu]['synonymes'][] = array('nn' => $idNomCourant, 'nom_sci' => $nom['nom_sci']);
 
}
}
$nomsRetenus = Tableau::trierMD($nomsRetenus, array('nom_sci_retenu' => SORT_ASC));
$nomsRetenus['nsc']['liste'] = $nomsSansCorrespondance;
return $nomsRetenus;
}
 
/trunk/modules/resultat/squelettes/resultat_determination_noms.tpl.html
1,33 → 1,45
<ul id="ef-resultats-determination">
<? foreach ($noms as $nnTaxon => $nom) : ?>
<li class="zone-resultat">
<a href="<?=$nom['url']?>">
<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=CRX2S" style="width:100px;height:100px;display:block;float:right;"/>
<?php if (isset($nom['synonymes'])) : ?>
<?php $nbrSynonymes = count($nom['synonymes']) ?>
<ul class="synonymes" style="width:50%;">
<?php for ($i = 0; ($i < 2); $i++) : ?>
<?php if (isset($nom['synonymes'][$i])) : ?>
<li>= <?=$nom['synonymes'][$i]['nom_sci']?></li>
<?php endif; ?>
<? endfor; ?>
<?php if ($nbrSynonymes > 2) : ?>
<li class="synonymes-autres">
<ul>
<?php for ($i = 2; $i < $nbrSynonymes; $i++) : ?>
<li>= <?=$nom['synonymes'][$i]['nom_sci']?></li>
<? endfor; ?>
</ul>
</li>
<?php endif; ?>
</ul>
<?php endif; ?>
</li>
<?php if ($nnTaxon == 'nsc') : ?>
<li class="zone-resultat" title="Aucun nom retenu n'a été trouvé pour ces noms scientifiques">
<strong>Noms sans correspondance</strong>
<?php if (isset($nom['liste'])) : ?>
<ul class="noms-ss-correspondance" style="width:50%;">
<?php foreach ($nom['liste'] as $nomSansCorrespondance) : ?>
<li><?=$nomSansCorrespondance['nom_sci']?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</li>
<?php else : ?>
<li class="zone-resultat">
<a href="<?=$nom['url']?>">
<strong class="nom-sci-retenu"><?=$nom['nom_sci_retenu']?></strong>
</a>
<?php if (isset($imagesUrls[$nnTaxon])) : ?>
<img src="<?=$imagesUrls[$nnTaxon][0]?>" style="width:100px;height:100px;display:block;float:right;"/>
<?php endif; ?>
<?php if (isset($nom['synonymes'])) : ?>
<?php $nbrSynonymes = count($nom['synonymes']) ?>
<ul class="synonymes" style="width:50%;">
<?php for ($i = 0; ($i < 2); $i++) : ?>
<?php if (isset($nom['synonymes'][$i])) : ?>
<li>= <?=$nom['synonymes'][$i]['nom_sci']?></li>
<?php endif; ?>
<? endfor; ?>
<?php if ($nbrSynonymes > 2) : ?>
<li class="synonymes-autres">
<ul>
<?php for ($i = 2; $i < $nbrSynonymes; $i++) : ?>
<li>= <?=$nom['synonymes'][$i]['nom_sci']?></li>
<? endfor; ?>
</ul>
</li>
<?php endif; ?>
</ul>
<?php endif; ?>
</li>
<?php endif; ?>
<? endforeach; ?>
</ul>
<script type="text/javascript">
/trunk/configurations/config.defaut.ini
96,4 → 96,7
taxonsTpl = "{ref:baseUrlApiEflore}/taxons"
taxonsStatsInitialesRangTpl = "{ref:taxonsTpl}/stats/initiales?masque.rg={rang}"
taxonsListeInitialesRangTpl = "{ref:taxonsTpl}?masque={initiale}&recherche=etendue&masque.rg={rang}"
taxonsRechercheTpl = "{ref:taxonsTpl}?masque={valeur}&recherche={type}"
taxonsRechercheTpl = "{ref:taxonsTpl}?masque={valeur}&recherche={type}"
 
imagesTpl = "{ref:baseUrlApiEflore}/images"
imagesResultatsDeterminationTpl = "{ref:imagesTpl}?masque.nn={idsNoms}&retour.format=CS"
/trunk/configurations/bdtfx.ini
5,3 → 5,4
[bdtfx]
nom = "Base de données des Trachéophytes de France Métropolitaine"
referentielVerna = "nvjfl"
referentielImages = "cel"