Subversion Repositories eFlore/Applications.eflore-consultation

Rev

Rev 698 | Rev 947 | Go to most recent revision | 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));
                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));
                $url = $this->formaterUrl($tpl, $params);
                return $url;
        }

        public function getUrlPremiereImageParIdsNoms($idsNoms) {
                $tpl = Config::get('imagesPremiereTpl');
                $params = array('idsNoms' => implode(',', $idsNoms));
                $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);
                $url = $this->formaterUrl($tpl, $params);
                return $url;
        }
        
        private function getUrlImagesTaxons($idsTaxons) {
                $tpl = Config::get('imagesTaxonsTpl');
                $params = array('projet' => $this->getProjet(),'nntaxon'=> $idsTaxons);
                $url = $this->formaterUrl($tpl, $params);
                return $url;
        }
}
?>