Rev 947 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?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 {
private $nntaxon;
private $limite;
private $depart;
public function setNnTaxon($nntax) {
$this->nntaxon = $nntax;
}
public function setLimite($limite) {
$this->limite = $limite;
}
public function setDepart($depart) {
$this->depart = $depart;
}
//TODO: créer des fonctions spécifiques cel et photoflora pour plus de clarté ?
public function getUrlsImagesParIdsNoms(Array $idsNoms) {
$infosImages = $this->getInfosImagesParIdsNoms($idsNoms);
$urls = array();
if (count($infosImages) > 0) {
foreach ($infosImages as $img) {
$id = $img['determination.nom_sci.code'];
$urls[$id][] = $img['binaire.href'];
}
}
return $urls;
}
public function getInfosImagesParIdsNoms(Array $idsNoms) {
$pas = 800;
if(count($idsNoms) >= $pas) {
$images = array();
$idsPartages = array_chunk($idsNoms, $pas);
foreach ($idsPartages as $sousEnsembleIdsNoms) {
$url = $this->getUrlImagesParIdsNoms($sousEnsembleIdsNoms);
$donnees = $this->chargerDonnees($url);
$resultats = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
$images += $resultats;
}
} else {
$url = $this->getUrlImagesParIdsNoms($idsNoms);
$donnees = $this->chargerDonnees($url);
$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
}
return $images;
}
public function getInfosImageParIdImage($id_image) {
$tpl = Config::get('imagesPopupTpl');
$url = $this->formaterUrl($tpl, array('id' => $id_image, 'referentiel' => Registre::get('parametres.referentiel')));
return $this->chargerDonnees($url);
}
public function getInfosImages() {
$url = $this->getUrlImages();
$donnees = $this->chargerDonnees($url);
$images = (empty($donnees['resultats']) == false) ? $donnees['resultats'] : array();
return $images;
}
public function getInfosImagesTaxons() {
$pas = 800;
$idsTaxons = explode(',', $this->nntaxon);
if(count($idsTaxons) >= $pas) {
$images = array();
$idsPartages = array_chunk($idsTaxons, $pas);
foreach ($idsPartages as $sousEnsembleIdsTaxons) {
$url = $this->getUrlImagesTaxons(implode(',',$sousEnsembleIdsTaxons));
$donnees = $this->chargerDonnees($url);
$resultats = (empty($donnees['resultats']) == false) ? $donnees['resultats'] : array();
$images += $resultats;
}
} else {
$url = $this->getUrlImagesTaxons($idsTaxons);
$donnees = $this->chargerDonnees($url);
$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
}
return $images;
}
private function getUrlImagesParIdsNoms($idsNoms) {
$tpl = Config::get('imagesResultatsDeterminationTpl');
$params = array('idsNoms' => implode(',', $idsNoms), 'referentiel' => Registre::get('parametres.referentiel'));
$url = $this->formaterUrl($tpl, $params);
return $url;
}
public function getUrlPremiereImageParIdsNoms($idsNoms) {
$tpl = Config::get('imagesPremiereTpl');
$params = array('idsNoms' => implode(',', $idsNoms), 'referentiel' => Registre::get('parametres.referentiel'));
$url = $this->formaterUrl($tpl, $params);
$donnees = $this->chargerDonnees($url);
$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
return $images;
}
private function getUrlImages() {
$tpl = Config::get('imagesTpl');
$params = array('projet' => $this->getProjet(), 'limite' => $this->limite, 'depart' => $this->depart, 'referentiel' => Registre::get('parametres.referentiel'));
$url = $this->formaterUrl($tpl, $params);
return $url;
}
private function getUrlImagesTaxons($idsTaxons) {
$tpl = Config::get('imagesTaxonsTpl');
$params = array('projet' => $this->getProjet(),'nntaxon'=> $idsTaxons, 'referentiel' => Registre::get('parametres.referentiel'));
$url = $this->formaterUrl($tpl, $params);
return $url;
}
}
?>