20,6 → 20,17 |
|
// nom du fond de carte en cours |
private $nom_fond = ''; |
|
private $niveau = 0; |
|
// contient le tableau de données sur les continents une fois chargé |
private $donnees_continents = array(); |
|
// contient le tableau de données sur les pays une fois chargé |
private $donnees_pays = array(); |
|
// contient le tableau de données sur les departements une fois chargé |
private $donnees_departements = array(); |
|
//+----------------------------------------------------------------------------------------------------------------+ |
// Méthodes |
43,16 → 54,16 |
$donnees = array(); |
|
// la présence d'un pays (non) et d'un continent (ou non) détermine le niveau de carte à afficher |
$niveau = $this->calculerNiveau($continent, $pays); |
$this->niveau = $this->calculerNiveau($continent, $pays); |
|
// suivant le niveau, continent et pays, on renvoie un template html différent |
$fond = $this->renvoyerPrefixePourNiveau($niveau, $continent, $pays); |
$fond = $this->renvoyerPrefixePourNiveau($this->niveau, $continent, $pays); |
|
$carte = ''; |
|
// chaque continent possède un fond de carte différent |
if($niveau == 1) { |
$carte = $this->renvoyerSuffixePourContinent($niveau, $continent, $pays); |
if($this->niveau == 1) { |
$carte = $this->renvoyerSuffixePourContinent($this->niveau, $continent, $pays); |
} |
|
// Création de la carte |
72,11 → 83,13 |
|
// Construction des données nécessaires à la cartographie |
$zones = $cartographie->getCarteZones(); |
$this->chargerZonesNbre($id_annuaire,$zones, $niveau); |
$this->chargerZonesUrls($id_annuaire, $zones, $continent, $pays, $niveau); |
$this->chargerZonesNbre($id_annuaire,$zones, $this->niveau); |
$this->chargerZonesUrls($id_annuaire, $zones, $continent, $pays, $this->niveau); |
|
$navigation = new NavigationControleur(); |
$donnees_navigation = $this->obtenirUrlsNavigation($id_annuaire, $continent, $pays, null); |
$donnees['navigation'] = $navigation->afficherBandeauNavigationCartographie($donnees_navigation); |
|
|
$cartographie->setCarteZones($zones); |
|
$cartographie->creerCarte(); |
125,7 → 138,6 |
$url = new URL(Config::get('url_base')); |
|
$url->setVariableRequete('id_annuaire', $id_annuaire); |
//$url->setVariableRequete('m', 'annuaire_inscrits_carto'); |
|
foreach ($zones as $id => &$infos) { |
|
319,7 → 331,104 |
|
return $nb_inscrits; |
} |
|
public function obtenirUrlsNavigation($id_annuaire ,$continent = null, $pays = null, $departement = null) { |
|
$donnees = array(); |
|
$url_carte_monde = new URL(Config::get('url_base')); |
$url_carte_monde->setVariableRequete('id_annuaire', $id_annuaire); |
$url_carte_monde->setVariableRequete('m', 'annuaire_afficher_carte'); |
$donnees['url_carte_monde'] = $url_carte_monde; |
$donnees['nom_carte_monde'] = 'Carte du monde'; |
|
if($continent != null && trim($continent) != '') { |
$infos_continents = $this->chargerInformationsContinentCsv(); |
$url_continent = new URL(Config::get('url_base')); |
$url_continent->setVariableRequete('id_annuaire', $id_annuaire); |
$url_continent->setVariableRequete('m', 'annuaire_afficher_carte'); |
$url_continent->setVariableRequete('continent', $continent); |
$donnees['url_continent'] = $url_continent; |
$donnees['nom_continent'] = $infos_continents[$continent][2]; |
} |
|
if($pays != null && trim($pays) != '') { |
|
$templates_continents = $this->renvoyerTousTemplates(); |
$infos_continents = $this->chargerInformationsPaysDuContinentsCsv($templates_continents[$continent]); |
$infos_pays = $infos_continents[$pays]; |
$url_pays = new URL(Config::get('url_base')); |
$url_pays->setVariableRequete('id_annuaire', $id_annuaire); |
if($pays == $this->id_france) { |
$url_pays->setVariableRequete('m', 'annuaire_afficher_carte'); |
} else { |
// sinon l'url pointe vers la liste des inscrits de ce pays |
$url_pays->setVariableRequete('m', 'annuaire_inscrits_carto'); |
} |
$url_pays->setVariableRequete('continent', $continent); |
$url_pays->setVariableRequete('pays', $pays); |
$donnees['url_pays'] = $url_pays; |
$donnees['nom_pays'] = $infos_pays[2]; |
} |
|
if($departement != null && trim($departement) != '') { |
$infos_departement = $this->chargerInformationsDepartementsFranceCsv(); |
$url_departement = new URL(Config::get('url_base')); |
$url_departement->setVariableRequete('id_annuaire', $id_annuaire); |
$url_departement->setVariableRequete('m', 'annuaire_afficher_carte'); |
$url_departement->setVariableRequete('continent', $continent); |
$url_departement->setVariableRequete('departement', $departement); |
$url_departement->setVariableRequete('pays', $pays); |
$donnees['url_departement'] = $url_departement; |
$donnees['nom_departement'] = $infos_departement[$departement][2]; |
} |
|
return $donnees; |
} |
|
private function chargerInformationsContinentCsv() { |
|
$nom_csv = Application::getChemin().Config::get('carte_fonds_chemin').'continents'; |
return $this->chargerInformationsCompletesParCsv($nom_csv); |
} |
|
private function chargerInformationsPaysDuContinentsCsv($continent) { |
|
$nom_csv = Application::getChemin().Config::get('carte_fonds_chemin').$continent; |
|
return $this->chargerInformationsCompletesParCsv($nom_csv); |
} |
|
private function chargerInformationsDepartementsFranceCsv() { |
|
$nom_csv = Application::getChemin().Config::get('carte_fonds_chemin').'france'; |
|
return $this->chargerInformationsCompletesParCsv($nom_csv); |
} |
|
private function chargerInformationsCompletesParCsv($nom_csv) { |
|
$fichier_csv = $nom_csv.'.csv'; |
$infos = array(); |
|
if (($handle = fopen($fichier_csv, 'r')) !== false) { |
$ligne = 0; |
|
while (($donnees = fgetcsv($handle, 1000, ',')) !== false) { |
|
if($ligne != 0 && trim($donnees[0]) != '') { |
|
$infos[$donnees[0]] = $donnees; |
} |
$ligne++; |
} |
fclose($handle); |
} |
|
return $infos; |
|
} |
|
/** |
* Récupère les identifiants de zone dans un fichier csv donné |
* @param string $nom_csv chemin vers le fichier csv (sans extension) qui contient les données |
334,7 → 443,7 |
$ligne = 0; |
|
while (($donnees = fgetcsv($handle, 1000, ',')) !== false) { |
|
|
if($ligne != 0 && trim($donnees[0]) != '') { |
$zones_id[] = "'".$donnees[0]."'"; |
} |