31 |
aurelien |
1 |
<?php
|
|
|
2 |
// declare(encoding='UTF-8');
|
|
|
3 |
/**
|
|
|
4 |
* classe Controleur du module Carte.
|
|
|
5 |
*
|
|
|
6 |
* @package Collection
|
|
|
7 |
* @category Php5
|
|
|
8 |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
|
|
|
9 |
* @author Aurélien Peronnet <aurelien@tela-botanica.org>
|
|
|
10 |
* @copyright 2010 Tela-Botanica
|
|
|
11 |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
|
|
|
12 |
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
|
|
|
13 |
* @version SVN: $Id$
|
|
|
14 |
*/
|
120 |
aurelien |
15 |
class CartoControleur extends AppControleur {
|
31 |
aurelien |
16 |
|
|
|
17 |
|
|
|
18 |
// identifiant de la france pour l'accès direct
|
44 |
aurelien |
19 |
private $id_france = 'fr';
|
31 |
aurelien |
20 |
|
44 |
aurelien |
21 |
// nom du fond de carte en cours
|
|
|
22 |
private $nom_fond = '';
|
221 |
aurelien |
23 |
|
|
|
24 |
private $niveau = 0;
|
|
|
25 |
|
|
|
26 |
// contient le tableau de données sur les continents une fois chargé
|
|
|
27 |
private $donnees_continents = array();
|
|
|
28 |
|
|
|
29 |
// contient le tableau de données sur les pays une fois chargé
|
|
|
30 |
private $donnees_pays = array();
|
|
|
31 |
|
|
|
32 |
// contient le tableau de données sur les departements une fois chargé
|
|
|
33 |
private $donnees_departements = array();
|
44 |
aurelien |
34 |
|
31 |
aurelien |
35 |
//+----------------------------------------------------------------------------------------------------------------+
|
|
|
36 |
// Méthodes
|
|
|
37 |
|
|
|
38 |
/**
|
|
|
39 |
* Fonction d'affichage par défaut, elle appelle la cartographie
|
|
|
40 |
*/
|
|
|
41 |
public function executerActionParDefaut() {
|
|
|
42 |
return $this->cartographier(1);
|
|
|
43 |
}
|
|
|
44 |
|
|
|
45 |
/**
|
|
|
46 |
* Cartographier un annuaire.
|
44 |
aurelien |
47 |
* @param int $id_annuaire l'identitifiant de l'annuaire à cartographier
|
|
|
48 |
* @param int $continent l'identitifiant du continent sur lequel on se trouve
|
|
|
49 |
* @param string $pays l'identitifiant du pays sur lequel on se trouve (normalement seulement la france si présent)
|
31 |
aurelien |
50 |
* @return string la vue correspondante
|
|
|
51 |
*/
|
44 |
aurelien |
52 |
public function cartographier($id_annuaire, $continent= null , $pays = null) {
|
31 |
aurelien |
53 |
// Initialisation de variable
|
|
|
54 |
$donnees = array();
|
|
|
55 |
|
44 |
aurelien |
56 |
// la présence d'un pays (non) et d'un continent (ou non) détermine le niveau de carte à afficher
|
221 |
aurelien |
57 |
$this->niveau = $this->calculerNiveau($continent, $pays);
|
31 |
aurelien |
58 |
|
44 |
aurelien |
59 |
// suivant le niveau, continent et pays, on renvoie un template html différent
|
221 |
aurelien |
60 |
$fond = $this->renvoyerPrefixePourNiveau($this->niveau, $continent, $pays);
|
44 |
aurelien |
61 |
|
|
|
62 |
$carte = '';
|
|
|
63 |
|
|
|
64 |
// chaque continent possède un fond de carte différent
|
221 |
aurelien |
65 |
if($this->niveau == 1) {
|
|
|
66 |
$carte = $this->renvoyerSuffixePourContinent($this->niveau, $continent, $pays);
|
44 |
aurelien |
67 |
}
|
|
|
68 |
|
31 |
aurelien |
69 |
// Création de la carte
|
|
|
70 |
$options = array(
|
44 |
aurelien |
71 |
'carte_nom' => $fond.$carte,
|
31 |
aurelien |
72 |
'formule' => Cartographie::FORMULE_PROPORTIONNEL,
|
|
|
73 |
'couleur_claire' => Config::get('carte_couleur_claire'),
|
|
|
74 |
'couleur_foncee' => Config::get('carte_couleur_foncee'),
|
44 |
aurelien |
75 |
'fond_fichier' => Config::get('carte_base_nom_'.$fond).$carte,
|
31 |
aurelien |
76 |
'fond_dossier' => Application::getChemin().Config::get('carte_fonds_chemin'),
|
|
|
77 |
'stock_dossier' => Config::get('carte_stockage_chemin'),
|
|
|
78 |
'stock_url' => Config::get('carte_stockage_url'),
|
|
|
79 |
'debug' => Config::get('carte_mode_debug'));
|
|
|
80 |
$cartographie = Composant::fabrique('cartographie', $options);
|
44 |
aurelien |
81 |
|
|
|
82 |
$this->nom_fond = Config::get('carte_base_nom_'.$fond).$carte;
|
|
|
83 |
|
31 |
aurelien |
84 |
// Construction des données nécessaires à la cartographie
|
|
|
85 |
$zones = $cartographie->getCarteZones();
|
221 |
aurelien |
86 |
$this->chargerZonesNbre($id_annuaire,$zones, $this->niveau);
|
|
|
87 |
$this->chargerZonesUrls($id_annuaire, $zones, $continent, $pays, $this->niveau);
|
56 |
aurelien |
88 |
|
221 |
aurelien |
89 |
$navigation = new NavigationControleur();
|
|
|
90 |
$donnees_navigation = $this->obtenirUrlsNavigation($id_annuaire, $continent, $pays, null);
|
|
|
91 |
$donnees['navigation'] = $navigation->afficherBandeauNavigationCartographie($donnees_navigation);
|
56 |
aurelien |
92 |
|
31 |
aurelien |
93 |
$cartographie->setCarteZones($zones);
|
|
|
94 |
|
|
|
95 |
$cartographie->creerCarte();
|
|
|
96 |
$donnees['map'] = $cartographie->getImageMap();
|
|
|
97 |
|
|
|
98 |
$resultat = $this->getVue('cartes/'.$fond, $donnees);
|
|
|
99 |
return $resultat;
|
|
|
100 |
}
|
|
|
101 |
|
44 |
aurelien |
102 |
/**
|
|
|
103 |
* Charge le nombre d'inscrit par zone pour un annuaire donné
|
|
|
104 |
* @param int $id_annuaire l'identifiant de l'annuaire
|
|
|
105 |
* @param array $zones les zones à cartographier (attention, passage par référence, donc les zones sont modifiées)
|
|
|
106 |
* @param int $niveau le niveau de la carto (monde, continent, ou pays)
|
|
|
107 |
*/
|
|
|
108 |
private function chargerZonesNbre($id_annuaire, &$zones, $niveau = 0) {
|
31 |
aurelien |
109 |
|
|
|
110 |
$metaModele = $this->getModele('AnnuaireModele');
|
44 |
aurelien |
111 |
// on charge les inscrits pour le niveau donné
|
|
|
112 |
$zones_infos = $this->chargerNombreInscritsParNiveauGeographique($id_annuaire, $niveau);
|
31 |
aurelien |
113 |
|
|
|
114 |
foreach ($zones as $id => &$infos) {
|
|
|
115 |
|
44 |
aurelien |
116 |
// si l'on a des données pour la zone, on renseigne le nombre d'inscrits
|
31 |
aurelien |
117 |
if (isset($zones_infos[$id])) {
|
|
|
118 |
|
|
|
119 |
$nbre = $zones_infos[$id];
|
|
|
120 |
$infos['info_nombre'] = $nbre;
|
|
|
121 |
} else {
|
44 |
aurelien |
122 |
// sinon on le met à 0
|
31 |
aurelien |
123 |
$infos['info_nombre'] = 0;
|
|
|
124 |
}
|
|
|
125 |
}
|
|
|
126 |
}
|
|
|
127 |
|
44 |
aurelien |
128 |
/**
|
|
|
129 |
* Charge les des zones pour un annuaire donné
|
|
|
130 |
* @param int $id_annuaire l'identifiant de l'annuaire
|
|
|
131 |
* @param array $zones les zones à cartographier (attention, passage par référence, donc les zones sont modifiées)
|
|
|
132 |
* @param int $continent l'identitifiant du continent sur lequel on se trouve
|
|
|
133 |
* @param string $pays l'identitifiant du pays sur lequel on se trouve (normalement seulement la france si présent)
|
|
|
134 |
* @param int $niveau le niveau de la carto (monde, continent, ou pays)
|
|
|
135 |
*/
|
31 |
aurelien |
136 |
private function chargerZonesUrls($id_annuaire, &$zones, $continent = null, $pays = null, $niveau = 0) {
|
|
|
137 |
|
|
|
138 |
$url = new URL(Config::get('url_base'));
|
56 |
aurelien |
139 |
|
31 |
aurelien |
140 |
$url->setVariableRequete('id_annuaire', $id_annuaire);
|
|
|
141 |
|
|
|
142 |
foreach ($zones as $id => &$infos) {
|
|
|
143 |
|
|
|
144 |
switch ($niveau) {
|
44 |
aurelien |
145 |
// niveau 0 de la carte : on affiche tous les continents
|
|
|
146 |
// l'url va pointer vers un continent en particulier
|
|
|
147 |
case 0:
|
|
|
148 |
$url->setVariableRequete('m', 'annuaire_afficher_carte');
|
|
|
149 |
$url->setVariableRequete('continent', $id);
|
|
|
150 |
break;
|
31 |
aurelien |
151 |
|
44 |
aurelien |
152 |
// niveau 1, on est sur un continent en particulier : on affiche le détail du continent demandé
|
|
|
153 |
// l'url pointe sur des pays
|
|
|
154 |
case 1:
|
|
|
155 |
$url->setVariableRequete('continent', $continent);
|
31 |
aurelien |
156 |
|
44 |
aurelien |
157 |
// si le pays c'est la france alors l'url pointera vers la carte des départements
|
|
|
158 |
if($id == $this->id_france) {
|
|
|
159 |
$url->setVariableRequete('m', 'annuaire_afficher_carte');
|
|
|
160 |
} else {
|
|
|
161 |
// sinon l'url pointe vers la liste des inscrits de ce pays
|
|
|
162 |
$url->setVariableRequete('m', 'annuaire_inscrits_carto');
|
|
|
163 |
}
|
|
|
164 |
$url->setVariableRequete('pays', $id);
|
31 |
aurelien |
165 |
|
44 |
aurelien |
166 |
break;
|
31 |
aurelien |
167 |
|
44 |
aurelien |
168 |
// niveau 2, si on a cliqué sur la france pour afficher les départements :
|
56 |
aurelien |
169 |
case 2:
|
|
|
170 |
$url->setVariableRequete('m','annuaire_inscrits_carto');
|
44 |
aurelien |
171 |
$url->setVariableRequete('continent', $continent);
|
|
|
172 |
$url->setVariableRequete('pays', $pays);
|
|
|
173 |
$url->setVariableRequete('departement', $id);
|
|
|
174 |
break;
|
|
|
175 |
}
|
31 |
aurelien |
176 |
$infos['url'] = sprintf($url, $id);
|
|
|
177 |
}
|
|
|
178 |
}
|
|
|
179 |
|
44 |
aurelien |
180 |
/**
|
|
|
181 |
* Renvoie le niveau auquel on se trouve suivant la présence ou non de certains paramètres
|
|
|
182 |
* @param int $continent l'identitifiant du continent sur lequel on se trouve
|
|
|
183 |
* @param string $pays l'identitifiant du pays sur lequel on se trouve (normalement seulement la france si présent)
|
|
|
184 |
*/
|
31 |
aurelien |
185 |
private function calculerNiveau($continent, $pays) {
|
|
|
186 |
|
|
|
187 |
// le niveau 0 c'est la carte de base
|
|
|
188 |
$niveau = 0;
|
|
|
189 |
|
|
|
190 |
// le niveau 1 on consulte un continent en particulier (ex. Amérique du Sud)
|
|
|
191 |
if($continent != null) {
|
44 |
aurelien |
192 |
$niveau = 1;
|
31 |
aurelien |
193 |
}
|
|
|
194 |
|
|
|
195 |
// le niveau 2 c'est un pays en particulier (ce cas là n'arrive que pour la france)
|
|
|
196 |
if($pays != null) {
|
44 |
aurelien |
197 |
$niveau = 2;
|
31 |
aurelien |
198 |
}
|
|
|
199 |
|
|
|
200 |
return $niveau;
|
|
|
201 |
}
|
|
|
202 |
|
44 |
aurelien |
203 |
/**
|
|
|
204 |
* Renvoie le type de template à utiliser suivant le niveau de certains paramètres
|
|
|
205 |
* @param int $niveau le niveau de la carto
|
|
|
206 |
* @return string le type de template
|
|
|
207 |
*/
|
|
|
208 |
private function renvoyerPrefixePourNiveau($niveau) {
|
31 |
aurelien |
209 |
switch ($niveau) {
|
|
|
210 |
case 0:
|
|
|
211 |
$fond = 'continents';
|
|
|
212 |
break;
|
|
|
213 |
|
44 |
aurelien |
214 |
case 1:
|
31 |
aurelien |
215 |
$fond = 'pays';
|
|
|
216 |
break;
|
|
|
217 |
|
|
|
218 |
case 2 :
|
|
|
219 |
$fond = 'france';
|
|
|
220 |
break;
|
|
|
221 |
|
|
|
222 |
default:
|
44 |
aurelien |
223 |
$fond = '';
|
31 |
aurelien |
224 |
break;
|
|
|
225 |
}
|
|
|
226 |
|
|
|
227 |
return $fond;
|
|
|
228 |
}
|
|
|
229 |
|
44 |
aurelien |
230 |
/**
|
|
|
231 |
* Renvoie le suffixe de fond de carte à utiliser pour un continent donné
|
|
|
232 |
* @param int $niveau le niveau de la carto
|
|
|
233 |
* @param int $niveau l'identifiant de continent
|
|
|
234 |
* @return string le suffixe
|
|
|
235 |
*/
|
|
|
236 |
private function renvoyerSuffixePourContinent($niveau, $continent) {
|
31 |
aurelien |
237 |
|
44 |
aurelien |
238 |
switch ($continent) {
|
|
|
239 |
case 1:
|
|
|
240 |
$carte = '_afrique';
|
|
|
241 |
break;
|
|
|
242 |
|
|
|
243 |
case 2:
|
|
|
244 |
$carte = '_nord_amerique';
|
|
|
245 |
break;
|
|
|
246 |
|
|
|
247 |
case 3:
|
|
|
248 |
$carte = '_asie';
|
|
|
249 |
break;
|
|
|
250 |
|
|
|
251 |
case 4:
|
|
|
252 |
$carte = '_europe';
|
|
|
253 |
break;
|
|
|
254 |
|
|
|
255 |
case 5:
|
|
|
256 |
$carte = '_oceanie';
|
|
|
257 |
break;
|
|
|
258 |
|
|
|
259 |
case 6:
|
|
|
260 |
$carte = '_sud_amerique';
|
|
|
261 |
break;
|
|
|
262 |
|
|
|
263 |
case 7:
|
|
|
264 |
$carte = '_moyen_orient';
|
|
|
265 |
break;
|
|
|
266 |
|
|
|
267 |
default:
|
|
|
268 |
$carte = '';
|
|
|
269 |
break;
|
|
|
270 |
}
|
|
|
271 |
|
|
|
272 |
return $carte;
|
|
|
273 |
}
|
|
|
274 |
|
|
|
275 |
/**
|
|
|
276 |
* renvoie tous les noms templates pour chaque zone du monde
|
|
|
277 |
* @return array un tableau associatif indexé par les identifiants de zone et contenant les noms de templates
|
|
|
278 |
*/
|
|
|
279 |
private function renvoyerTousTemplates() {
|
|
|
280 |
return array(1 => 'pays_afrique', 2 => 'pays_nord_amerique', 3 => 'pays_asie', 4 => 'pays_europe', 5 => 'pays_oceanie', 6 => 'pays_sud_amerique', 7 => 'pays_moyen_orient');
|
|
|
281 |
}
|
|
|
282 |
|
|
|
283 |
/**
|
|
|
284 |
* Charge la liste des inscrits par zone pour un niveau géographique donné
|
|
|
285 |
* @param int $id_annuaire l'identifiant de l'annuaire
|
|
|
286 |
* @param int $niveau le niveau où l'on se situe
|
|
|
287 |
* @return array un tableau associatif indexé par les identifiants de zone et contenant le nombre d'inscrits pour chaque zone
|
|
|
288 |
*/
|
|
|
289 |
private function chargerNombreInscritsParNiveauGeographique($id_annuaire, $niveau) {
|
|
|
290 |
|
31 |
aurelien |
291 |
$nb_inscrits = array();
|
|
|
292 |
|
44 |
aurelien |
293 |
if($niveau == 0) {
|
|
|
294 |
// si on est au niveau des continents
|
|
|
295 |
$zones_ids = array();
|
|
|
296 |
// il faut faire la somme des inscrits par zones géographique
|
|
|
297 |
$templates = $this->renvoyerTousTemplates();
|
|
|
298 |
} else {
|
|
|
299 |
// sinon on appelle la fonction pour la zone demandée
|
|
|
300 |
$zones_ids = $this->chargerZonesParCsv(Application::getChemin().Config::get('carte_fonds_chemin').$this->nom_fond);
|
|
|
301 |
}
|
|
|
302 |
|
31 |
aurelien |
303 |
$annuaire_controleur = new AnnuaireControleur();
|
|
|
304 |
|
|
|
305 |
switch ($niveau) {
|
44 |
aurelien |
306 |
// niveau de la carte du monde
|
31 |
aurelien |
307 |
case 0:
|
44 |
aurelien |
308 |
// pour chacun des continents, on fait la somme des membres de sa zone
|
|
|
309 |
foreach($templates as $id_continent => $template) {
|
|
|
310 |
$zones_continent_ids = $this->chargerZonesParCsv(Application::getChemin().Config::get('carte_fonds_chemin').$template);
|
|
|
311 |
$nb_inscrits[$id_continent] = array_sum($annuaire_controleur->chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $zones_continent_ids));
|
|
|
312 |
}
|
31 |
aurelien |
313 |
break;
|
|
|
314 |
|
44 |
aurelien |
315 |
// niveau de la carte des pays d'un continent
|
|
|
316 |
case 1:
|
|
|
317 |
$nb_inscrits = $annuaire_controleur->chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $zones_ids);
|
31 |
aurelien |
318 |
break;
|
|
|
319 |
|
44 |
aurelien |
320 |
// détail d'un pays
|
31 |
aurelien |
321 |
case 2 :
|
|
|
322 |
$nb_inscrits = $annuaire_controleur->chargerNombreAnnuaireListeInscritsParDepartement($id_annuaire);
|
|
|
323 |
break;
|
|
|
324 |
|
143 |
aurelien |
325 |
// action par défaut
|
31 |
aurelien |
326 |
default:
|
143 |
aurelien |
327 |
// on renvoie un tableau vide
|
|
|
328 |
$nb_inscrits = array();
|
31 |
aurelien |
329 |
break;
|
|
|
330 |
}
|
|
|
331 |
|
|
|
332 |
return $nb_inscrits;
|
|
|
333 |
}
|
221 |
aurelien |
334 |
|
|
|
335 |
public function obtenirUrlsNavigation($id_annuaire ,$continent = null, $pays = null, $departement = null) {
|
|
|
336 |
|
|
|
337 |
$donnees = array();
|
|
|
338 |
|
|
|
339 |
$url_carte_monde = new URL(Config::get('url_base'));
|
|
|
340 |
$url_carte_monde->setVariableRequete('id_annuaire', $id_annuaire);
|
|
|
341 |
$url_carte_monde->setVariableRequete('m', 'annuaire_afficher_carte');
|
|
|
342 |
$donnees['url_carte_monde'] = $url_carte_monde;
|
|
|
343 |
$donnees['nom_carte_monde'] = 'Carte du monde';
|
|
|
344 |
|
|
|
345 |
if($continent != null && trim($continent) != '') {
|
|
|
346 |
$infos_continents = $this->chargerInformationsContinentCsv();
|
|
|
347 |
$url_continent = new URL(Config::get('url_base'));
|
|
|
348 |
$url_continent->setVariableRequete('id_annuaire', $id_annuaire);
|
|
|
349 |
$url_continent->setVariableRequete('m', 'annuaire_afficher_carte');
|
|
|
350 |
$url_continent->setVariableRequete('continent', $continent);
|
|
|
351 |
$donnees['url_continent'] = $url_continent;
|
|
|
352 |
$donnees['nom_continent'] = $infos_continents[$continent][2];
|
|
|
353 |
}
|
|
|
354 |
|
|
|
355 |
if($pays != null && trim($pays) != '') {
|
|
|
356 |
|
|
|
357 |
$templates_continents = $this->renvoyerTousTemplates();
|
|
|
358 |
$infos_continents = $this->chargerInformationsPaysDuContinentsCsv($templates_continents[$continent]);
|
|
|
359 |
$infos_pays = $infos_continents[$pays];
|
|
|
360 |
$url_pays = new URL(Config::get('url_base'));
|
|
|
361 |
$url_pays->setVariableRequete('id_annuaire', $id_annuaire);
|
|
|
362 |
if($pays == $this->id_france) {
|
|
|
363 |
$url_pays->setVariableRequete('m', 'annuaire_afficher_carte');
|
|
|
364 |
} else {
|
|
|
365 |
// sinon l'url pointe vers la liste des inscrits de ce pays
|
|
|
366 |
$url_pays->setVariableRequete('m', 'annuaire_inscrits_carto');
|
|
|
367 |
}
|
|
|
368 |
$url_pays->setVariableRequete('continent', $continent);
|
|
|
369 |
$url_pays->setVariableRequete('pays', $pays);
|
|
|
370 |
$donnees['url_pays'] = $url_pays;
|
|
|
371 |
$donnees['nom_pays'] = $infos_pays[2];
|
|
|
372 |
}
|
|
|
373 |
|
|
|
374 |
if($departement != null && trim($departement) != '') {
|
|
|
375 |
$infos_departement = $this->chargerInformationsDepartementsFranceCsv();
|
|
|
376 |
$url_departement = new URL(Config::get('url_base'));
|
|
|
377 |
$url_departement->setVariableRequete('id_annuaire', $id_annuaire);
|
|
|
378 |
$url_departement->setVariableRequete('m', 'annuaire_afficher_carte');
|
|
|
379 |
$url_departement->setVariableRequete('continent', $continent);
|
|
|
380 |
$url_departement->setVariableRequete('departement', $departement);
|
|
|
381 |
$url_departement->setVariableRequete('pays', $pays);
|
|
|
382 |
$donnees['url_departement'] = $url_departement;
|
|
|
383 |
$donnees['nom_departement'] = $infos_departement[$departement][2];
|
|
|
384 |
}
|
44 |
aurelien |
385 |
|
221 |
aurelien |
386 |
return $donnees;
|
|
|
387 |
}
|
|
|
388 |
|
234 |
aurelien |
389 |
public function chargerInformationsContinentCsv() {
|
221 |
aurelien |
390 |
|
|
|
391 |
$nom_csv = Application::getChemin().Config::get('carte_fonds_chemin').'continents';
|
|
|
392 |
return $this->chargerInformationsCompletesParCsv($nom_csv);
|
|
|
393 |
}
|
|
|
394 |
|
234 |
aurelien |
395 |
public function chargerInformationsPaysDuContinentsCsv($continent) {
|
221 |
aurelien |
396 |
|
|
|
397 |
$nom_csv = Application::getChemin().Config::get('carte_fonds_chemin').$continent;
|
|
|
398 |
|
|
|
399 |
return $this->chargerInformationsCompletesParCsv($nom_csv);
|
|
|
400 |
}
|
|
|
401 |
|
234 |
aurelien |
402 |
public function chargerInformationsDepartementsFranceCsv() {
|
221 |
aurelien |
403 |
|
|
|
404 |
$nom_csv = Application::getChemin().Config::get('carte_fonds_chemin').'france';
|
|
|
405 |
|
|
|
406 |
return $this->chargerInformationsCompletesParCsv($nom_csv);
|
|
|
407 |
}
|
|
|
408 |
|
234 |
aurelien |
409 |
public function chargerInformationsCompletesParCsv($nom_csv) {
|
221 |
aurelien |
410 |
|
|
|
411 |
$fichier_csv = $nom_csv.'.csv';
|
|
|
412 |
$infos = array();
|
|
|
413 |
|
|
|
414 |
if (($handle = fopen($fichier_csv, 'r')) !== false) {
|
|
|
415 |
$ligne = 0;
|
|
|
416 |
|
|
|
417 |
while (($donnees = fgetcsv($handle, 1000, ',')) !== false) {
|
|
|
418 |
|
|
|
419 |
if($ligne != 0 && trim($donnees[0]) != '') {
|
|
|
420 |
|
|
|
421 |
$infos[$donnees[0]] = $donnees;
|
|
|
422 |
}
|
|
|
423 |
$ligne++;
|
|
|
424 |
}
|
|
|
425 |
fclose($handle);
|
|
|
426 |
}
|
|
|
427 |
|
|
|
428 |
return $infos;
|
|
|
429 |
|
|
|
430 |
}
|
|
|
431 |
|
44 |
aurelien |
432 |
/**
|
|
|
433 |
* Récupère les identifiants de zone dans un fichier csv donné
|
|
|
434 |
* @param string $nom_csv chemin vers le fichier csv (sans extension) qui contient les données
|
|
|
435 |
* @return array un tableau contenant les identifiants des zones
|
|
|
436 |
*/
|
|
|
437 |
private function chargerZonesParCsv($nom_csv) {
|
|
|
438 |
|
|
|
439 |
$fichier_csv = $nom_csv.'.csv';
|
|
|
440 |
$zones_id = array();
|
|
|
441 |
|
|
|
442 |
if (($handle = fopen($fichier_csv, 'r')) !== false) {
|
|
|
443 |
$ligne = 0;
|
|
|
444 |
|
|
|
445 |
while (($donnees = fgetcsv($handle, 1000, ',')) !== false) {
|
221 |
aurelien |
446 |
|
44 |
aurelien |
447 |
if($ligne != 0 && trim($donnees[0]) != '') {
|
|
|
448 |
$zones_id[] = "'".$donnees[0]."'";
|
|
|
449 |
}
|
|
|
450 |
$ligne++;
|
|
|
451 |
}
|
|
|
452 |
fclose($handle);
|
|
|
453 |
}
|
|
|
454 |
|
|
|
455 |
return $zones_id;
|
|
|
456 |
}
|
31 |
aurelien |
457 |
}
|
|
|
458 |
?>
|