Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 220 → Rev 221

/trunk/controleurs/CartoControleur.php
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]."'";
}