Subversion Repositories Applications.annuaire

Rev

Rev 437 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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