Subversion Repositories eFlore/Applications.eflore-consultation

Rev

Rev 1428 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
990 isa 1
<?php
2
// declare(encoding='UTF-8');
3
/**
4
 * Classe mère du module Liste.
5
 *
6
 * @category    PHP 5.2
7
 * @package             eflore-consultation
8
 * @author              Jean-Pascal MILCENT <jpm@tela-botanica.org>
9
 * @author              Delphine CAUQUIL <delphine@tela-botanica.org>
10
 * @copyright   2011 Tela-Botanica
11
 * @license             http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
12
 * @license             http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
13
 * @version             $Id$
14
 */
15
class Illustrations extends aControleur {
16
 
17
        private $conteneur = null;
18
        private $nomCourant = null;
19
        private $images = null;
20
        private $appUrls = null;
21
        private $meta = null;
22
        private $referentiel = 'bdtfx';
23
        private $donnees = array();
24
 
25
        public function __construct(Conteneur $conteneur) {
26
                $this->conteneur = $conteneur;
27
                $this->nomCourant = $this->conteneur->getNomCourant();
28
                $this->referentiel = $this->conteneur->getParametre('referentiel');
29
                $this->images = $this->conteneur->getApiImages();
30
                $this->appUrls = $this->conteneur->getAppUrls();
31
                $this->meta = $this->conteneur->getApiMetaDonnees();
1115 mathias 32
 
33
                $this->images->setApi(Images::API_DEL);
990 isa 34
        }
35
 
36
        public function getDonnees() {
37
                $this->donnees = array();
38
                $this->getPhotos();
39
                $dessin = $this->addDessin();
40
                if (!empty($dessin)) {
1108 jpm 41
                        array_push($this->donnees, $dessin);
990 isa 42
                }
1591 killian 43
                $images = $this->addSmartFloreImages();
44
                if (!empty($images)) {
45
                        $this->donnees = array_merge(array_values($images), $this->donnees);
46
                }
990 isa 47
 
48
                return $this->donnees;
49
        }
1108 jpm 50
 
990 isa 51
        public function getPhotos() {
1115 mathias 52
                $listePhotos = $this->images->getInfosImagesGalerieMobile($this->nomCourant->getNnr());
1108 jpm 53
                foreach($listePhotos as $index) {
1036 isa 54
                        $this->formaterListePhotos($index);
990 isa 55
                }
56
        }
1036 isa 57
 
58
        private function formaterListePhotos($images) {
59
                $infosImg['src'] = $images['binaire.href'];
1108 jpm 60
 
1036 isa 61
                $obs = $images['observation'];
62
                if ($obs['auteur.nom'] != '') {
63
                        $infosImg['legende']['titre'] = $obs['auteur.nom'];
64
                        if ($obs['auteur.prenom'] != '') {
65
                                $infosImg['legende']['titre'] .= ' '.$obs['auteur.prenom'];
66
                        }
67
                } else {
68
                        $infosImg['legende']['titre'] = "Anonyme";
69
                }
1108 jpm 70
 
1036 isa 71
                if ($obs['date_observation'] != '') {
72
                        $infosImg['legende']['titre'] .= ", le ".$this->formaterDateImg($obs['date_observation']);
73
                }
1108 jpm 74
 
1036 isa 75
                if ($obs['zone_geo'] != '') {
76
                        $infosImg['legende']['texte'] = $obs['zone_geo'];
77
                        if ($obs['lieudit'] != '') {
78
                                $infosImg['legende']['texte'] .= ' ('.$obs['lieudit'].')';
990 isa 79
                        }
1036 isa 80
                } else {
81
                        $infosImg['legende']['texte'] = "&nbsp;";
990 isa 82
                }
1108 jpm 83
 
1036 isa 84
                array_push($this->donnees, $infosImg);
990 isa 85
        }
86
 
87
        private function formaterDateImg($date) {
88
                $dateFmt = $date;
89
                if ($date == '0000-00-00' || $date == '1970-01-01 01:01:01') {
90
                        $dateFmt = 'inconnue';
91
                } else {
92
                        $dateFmt = strftime('%e %B %Y', strtotime($date));
93
                }
94
                return $dateFmt;
95
        }
1108 jpm 96
 
990 isa 97
        public function addDessin() {
98
                $img = array();
99
                $projet = Config::get($this->referentiel.'.baseDessins');
100
                if ($projet != "") {
101
                        $dessin = array();
102
                        $tax = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
103
                        $this->images->setProjet($projet);
104
                        $this->images->setNnTaxon($tax);
1357 mathias 105
                        if ($this->referentiel == 'bdtfx') {
106
                                $costeImg = $this->images->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons();
107
                                $this->images->setApi(Eflore::API_DEL);
108
                                if (count($costeImg) != 0) {
109
                                        $img['src'] = $costeImg[key($costeImg)]['binaire.href'];
110
                                        $img['legende']['titre'] = "Illustration de Coste";
111
                                        $img['legende']['texte'] = "&nbsp;";
112
                                }
990 isa 113
                        }
114
                }
115
 
116
                return $img;
117
        }
1591 killian 118
 
119
        public function addSmartFloreImages() {
120
                $img = [];
121
                $tagFiche = strtoupper($this->conteneur->getParametre('referentiel'))."nt"
122
                        .$this->conteneur->getNomCourant()->getNomSelectionne()->get('num_taxonomique')
123
                ;
124
                $sentier = urldecode($_GET['sentier']);
125
 
126
                if ($sentier && $tagFiche) {
127
                        $images = $this->images->getInfosImagesParFicheEtSentier($tagFiche, $sentier);
128
 
129
                        if ($images) {
130
                                foreach ($images as $image) {
131
                                        $retour = $this->images->getInfosImageParId($image['id']);
132
                                        $auteur = $retour['pseudo_utilisateur'] ?? 'Auteur inconnu';
133
                                        $img[$image['id']]['src'] = $image['url'];
134
                                        $img[$image['id']]['legende']['titre'] = $auteur;
135
                                        $img[$image['id']]['legende']['texte'] = "&nbsp;";
136
                                }
137
                        }
138
                }
139
 
140
                return $img;
141
        }
990 isa 142
}
1591 killian 143
?>