Line 46... |
Line 46... |
46 |
* Méthode appelée par défaut pour charger ce widget.
|
46 |
* Méthode appelée par défaut pour charger ce widget.
|
47 |
*/
|
47 |
*/
|
48 |
public function executer() {
|
48 |
public function executer() {
|
49 |
$retour = null;
|
49 |
$retour = null;
|
50 |
$this->extraireParametres();
|
50 |
$this->extraireParametres();
|
51 |
|
- |
|
52 |
$methode = $this->traiterNomMethodeExecuter($this->carte);
|
51 |
$methode = $this->traiterNomMethodeExecuter($this->carte);
|
53 |
if (method_exists($this, $methode)) {
|
52 |
if (method_exists($this, $methode)) {
|
54 |
$retour = $this->$methode();
|
53 |
$retour = $this->$methode();
|
55 |
} else {
|
54 |
} else {
|
56 |
$this->messages[] = "Ce type de service '$methode' n'est pas disponible.";
|
55 |
$this->messages[] = "Ce type de service '$methode' n'est pas disponible.";
|
57 |
}
|
56 |
}
|
58 |
|
- |
|
59 |
if (is_null($retour)) {
|
57 |
if (is_null($retour)) {
|
60 |
$info = 'Un problème est survenu : '.print_r($this->messages, true);
|
58 |
$info = 'Un problème est survenu : '.print_r($this->messages, true);
|
61 |
$this->envoyer($info);
|
59 |
$this->envoyer($info);
|
62 |
} else {
|
60 |
} else {
|
63 |
$squelette = dirname(__FILE__).self::DS.'squelettes'.self::DS.$retour['squelette'].'.tpl.html';
|
61 |
$squelette = dirname(__FILE__).self::DS.'squelettes'.self::DS.$retour['squelette'].'.tpl.html';
|
Line 69... |
Line 67... |
69 |
public function extraireParametres() {
|
67 |
public function extraireParametres() {
|
70 |
extract($this->parametres);
|
68 |
extract($this->parametres);
|
71 |
$this->carte = (isset($carte) ? $carte : self::SERVICE_CARTO_ACTION_DEFAUT);
|
69 |
$this->carte = (isset($carte) ? $carte : self::SERVICE_CARTO_ACTION_DEFAUT);
|
72 |
$this->utilisateur = (isset($utilisateur) ? $utilisateur : '*');
|
70 |
$this->utilisateur = (isset($utilisateur) ? $utilisateur : '*');
|
73 |
$this->projet = (isset($projet) ? $projet : '*');
|
71 |
$this->projet = (isset($projet) ? $projet : '*');
|
- |
|
72 |
$this->tag = (isset($tag) ? $tag : '*');
|
74 |
$this->dept = (isset($dept) ? $dept : '*');
|
73 |
$this->dept = (isset($dept) ? $dept : '*');
|
75 |
$this->commune = (isset($commune) ? $commune : '*');
|
74 |
$this->commune = (isset($commune) ? $commune : '*');
|
76 |
$this->num_taxon = (isset($num_taxon) ? $num_taxon : '*');
|
75 |
$this->num_taxon = (isset($num_taxon) ? $num_taxon : '*');
|
- |
|
76 |
$this->date = (isset($date) ? $date : '*');
|
- |
|
77 |
$this->taxon = (isset($taxon) ? $taxon : '*');
|
77 |
$this->station = (isset($station) ? $station : null);
|
78 |
$this->station = (isset($station) ? $station : null);
|
78 |
$this->format = (isset($format) ? $format : null);
|
79 |
$this->format = (isset($format) ? $format : null);
|
79 |
$this->start = (isset($start) ? $start : null);
|
80 |
$this->start = (isset($start) ? $start : null);
|
80 |
$this->limit = (isset($limit) ? $limit : null);
|
81 |
$this->limit = (isset($limit) ? $limit : null);
|
81 |
}
|
82 |
}
|
Line 83... |
Line 84... |
83 |
/**
|
84 |
/**
|
84 |
* Carte par défaut
|
85 |
* Carte par défaut
|
85 |
*/
|
86 |
*/
|
86 |
public function executerCarteDefaut() {
|
87 |
public function executerCarteDefaut() {
|
87 |
$widget = null;
|
88 |
$widget = null;
|
88 |
$url_json = $this->contruireUrlServiceCarto('carte-defaut-json');
|
89 |
$url_stations = $this->contruireUrlServiceCarto('stations');
|
89 |
$url_base = sprintf($this->config['chemins']['baseURLAbsoluDyn'], '');
|
90 |
$url_base = sprintf($this->config['chemins']['baseURLAbsoluDyn'], '');
|
Line 90... |
Line 91... |
90 |
|
91 |
|
91 |
// Création des infos du widget
|
92 |
// Création des infos du widget
|
92 |
$widget['donnees']['url_cel_carto'] = $this->contruireUrlServiceCarto();
|
93 |
$widget['donnees']['url_cel_carto'] = $this->contruireUrlServiceCarto();
|
93 |
$widget['donnees']['url_json'] = $url_json;
|
94 |
$widget['donnees']['url_stations'] = $url_stations;
|
94 |
$widget['donnees']['url_base'] = $url_base;
|
95 |
$widget['donnees']['url_base'] = $url_base;
|
95 |
$widget['donnees']['utilisateur'] = $this->utilisateur;
|
96 |
$widget['donnees']['utilisateur'] = $this->utilisateur;
|
- |
|
97 |
$widget['donnees']['projet'] = $this->projet;
|
96 |
$widget['donnees']['projet'] = $this->projet;
|
98 |
$widget['donnees']['tag'] = $this->tag;
|
97 |
$widget['donnees']['dept'] = $this->dept;
|
99 |
$widget['donnees']['dept'] = $this->dept;
|
98 |
$widget['donnees']['commune'] = $this->commune;
|
100 |
$widget['donnees']['commune'] = $this->commune;
|
99 |
$widget['donnees']['num_taxon'] = $this->num_taxon;
|
101 |
$widget['donnees']['num_taxon'] = $this->num_taxon;
|
100 |
$widget['donnees']['taxons'] = $this->chargerTaxons();
|
- |
|
101 |
if ($this->num_taxon != '*') {
|
- |
|
102 |
$taxon_courrant = current($widget['donnees']['taxons']);
|
102 |
$widget['donnees']['date'] = $this->date;
|
103 |
$widget['donnees']['taxon_nom'] = $taxon_courrant['nom'];
|
- |
|
104 |
}
|
103 |
$widget['donnees']['taxon'] = $this->taxon;
|
Line 105... |
Line -... |
105 |
$widget['squelette'] = 'carte_defaut';
|
- |
|
106 |
|
- |
|
107 |
if (isset($this->dept)) {
|
- |
|
108 |
// si on veut afficher les limites départemmentales on va compter et chercher les noms de fichiers
|
- |
|
109 |
$fichiersKml = $this->chercherFichierKml();
|
- |
|
110 |
$urls = null;
|
- |
|
111 |
foreach ($fichiersKml as $kml => $dossier){
|
- |
|
112 |
$url_limites_communales = sprintf($this->config['carto']['limitesCommunaleUrlTpl'], $dossier, $kml);
|
- |
|
113 |
$urls[] = $url_limites_communales;
|
104 |
$widget['donnees']['url_limites_communales'] = $this->obtenirUrlsLimitesCommunales();
|
114 |
}
|
- |
|
Line 115... |
Line 105... |
115 |
$widget['donnees']['url_limites_communales'] = json_encode($urls);
|
105 |
|
116 |
}
|
106 |
$widget['squelette'] = 'carte_defaut';
|
Line 117... |
Line 107... |
117 |
|
107 |
|
Line 123... |
Line 113... |
123 |
$url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], self::SERVICE_CARTO_NOM);
|
113 |
$url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], self::SERVICE_CARTO_NOM);
|
124 |
if ($action) {
|
114 |
if ($action) {
|
125 |
$url .= "/$action";
|
115 |
$url .= "/$action";
|
Line 126... |
Line 116... |
126 |
|
116 |
|
127 |
$parametres_retenus = array();
|
117 |
$parametres_retenus = array();
|
- |
|
118 |
$parametres_a_tester = array('station', 'utilisateur', 'projet', 'tag', 'dept', 'commune',
|
- |
|
119 |
'num_taxon', 'taxon', 'date',
|
128 |
$parametres_a_tester = array('station', 'utilisateur', 'projet', 'dept', 'commune', 'num_taxon', 'start', 'limit');
|
120 |
'start', 'limit');
|
129 |
foreach ($parametres_a_tester as $param) {
|
121 |
foreach ($parametres_a_tester as $param) {
|
130 |
if (isset($this->$param) && $this->$param != '*') {
|
122 |
if (isset($this->$param) && $this->$param != '*') {
|
131 |
$parametres_retenus[$param] = $this->$param;
|
123 |
$parametres_retenus[$param] = $this->$param;
|
132 |
}
|
124 |
}
|
Line 140... |
Line 132... |
140 |
}
|
132 |
}
|
141 |
}
|
133 |
}
|
142 |
return $url;
|
134 |
return $url;
|
143 |
}
|
135 |
}
|
Line 144... |
Line -... |
144 |
|
- |
|
145 |
private function chargerTaxons() {
|
- |
|
146 |
// Récupération des données au format Json
|
- |
|
147 |
$url = $this->contruireUrlServiceCarto('taxons');
|
- |
|
148 |
$json = $this->getDao()->consulter($url);
|
- |
|
149 |
$donnees = json_decode($json);
|
- |
|
150 |
|
- |
|
151 |
// Post-traitement des données
|
- |
|
152 |
$taxons = $this->traiterTaxons($donnees);
|
- |
|
153 |
|
- |
|
154 |
return $taxons;
|
- |
|
155 |
}
|
- |
|
156 |
|
136 |
|
157 |
private function traiterTaxons($donnees) {
|
137 |
private function obtenirUrlsLimitesCommunales() {
|
158 |
$taxons = array();
|
- |
|
159 |
if (is_array($donnees) && count($donnees) > 0) {
|
138 |
$urls = null;
|
160 |
foreach ($donnees as $donnee) {
|
139 |
if (isset($this->dept)) {
|
161 |
if (!isset($taxons[$donnee->num_taxon]) && ! $this->etreVide($donnee->nom_ret)) {
|
- |
|
162 |
$taxon = array();
|
140 |
// si on veut afficher les limites départemmentales on va compter et chercher les noms de fichiers
|
163 |
$taxon['nn'] = $donnee->num_nom_ret;
|
141 |
$fichiersKml = $this->chercherFichierKml();
|
164 |
$taxon['nt'] = $donnee->num_taxon;
|
142 |
if (count($fichiersKml) > 0) {
|
165 |
$taxon['nom'] = $this->nettoyerTexte($donnee->nom_ret);
|
143 |
foreach ($fichiersKml as $kml => $dossier){
|
166 |
$taxon['famille'] = $this->nettoyerTexte($donnee->famille);
|
144 |
$url_limites_communales = sprintf($this->config['carto']['limitesCommunaleUrlTpl'], $dossier, $kml);
|
167 |
$taxons[$donnee->num_taxon] = $taxon;
|
145 |
$urls[] = $url_limites_communales;
|
168 |
}
|
146 |
}
|
169 |
}
|
147 |
}
|
- |
|
148 |
}
|
170 |
}
|
149 |
$urls = json_encode($urls);
|
171 |
return $taxons;
|
150 |
return $urls;
|
Line 172... |
Line 151... |
172 |
}
|
151 |
}
|
- |
|
152 |
|
173 |
|
153 |
private function chercherFichierKml(){
|
174 |
private function chercherFichierKml(){
|
154 |
$fichiers = array();
|
175 |
$chemins = explode(',', $this->config['carto']['communesKmzChemin']);
|
155 |
$chemins = explode(',', $this->config['carto']['communesKmzChemin']);
|
176 |
$departements = explode(',', $this->dept);// plrs code de départements peuvent être demandés séparés par des virgules
|
- |
|
177 |
$departements_trouves = array();
|
156 |
$departements = explode(',', $this->dept);// plrs code de départements peuvent être demandés séparés par des virgules
|
178 |
$fichiers = array();
|
157 |
$departements_trouves = array();
|
179 |
foreach ($chemins as $dossier_chemin) {
|
158 |
foreach ($chemins as $dossier_chemin) {
|
180 |
if ($dossier_ressource = opendir($dossier_chemin)) {
|
159 |
if ($dossier_ressource = opendir($dossier_chemin)) {
|
181 |
while ($element = readdir($dossier_ressource)) {
|
160 |
while ($element = readdir($dossier_ressource)) {
|