/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" |