10,11 → 10,9 |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL |
* @version SVN: $Id$ |
*/ |
class CartoControleur extends AppControleur { |
|
|
// identifiant de la france pour l'accès direct |
private $id_france = 'fr'; |
|
111,21 → 109,16 |
* @param int $niveau le niveau de la carto (monde, continent, ou pays) |
*/ |
private function chargerZonesNbre($id_annuaire, &$zones, $niveau = 0) { |
|
$metaModele = $this->getModele('AnnuaireModele'); |
// on charge les inscrits pour le niveau donné |
$zones_infos = $this->chargerNombreInscritsParNiveauGeographique($id_annuaire, $niveau); |
|
foreach ($zones as $id => &$infos) { |
|
// si l'on a des données pour la zone, on renseigne le nombre d'inscrits |
if (isset($zones_infos[$id])) { |
|
$nbre = $zones_infos[$id]; |
$infos['info_nombre'] = $nbre; |
|
$this->total_inscrits_zone += $nbre; |
|
} else { |
// sinon on le met à 0 |
$infos['info_nombre'] = 0; |
295,9 → 288,6 |
* @return array un tableau associatif indexé par les identifiants de zone et contenant le nombre d'inscrits pour chaque zone |
*/ |
private function chargerNombreInscritsParNiveauGeographique($id_annuaire, $niveau) { |
|
$nb_inscrits = array(); |
|
if($niveau == 0) { |
// si on est au niveau des continents |
$zones_ids = array(); |
309,10 → 299,9 |
} |
|
$annuaire_controleur = new AnnuaireControleur(); |
|
$nb_inscrits = array(); |
switch ($niveau) { |
// niveau de la carte du monde |
case 0: |
case 0 : // niveau de la carte du monde |
// pour chacun des continents, on fait la somme des membres de sa zone |
foreach($templates as $id_continent => $template) { |
$zones_continent_ids = $this->chargerZonesParCsv(Application::getChemin().Config::get('carte_fonds_chemin').$template); |
319,34 → 308,21 |
$nb_inscrits[$id_continent] = array_sum($annuaire_controleur->chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $zones_continent_ids)); |
} |
break; |
|
// niveau de la carte des pays d'un continent |
case 1: |
case 1 : // niveau de la carte des pays d'un continent |
$nb_inscrits = $annuaire_controleur->chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $zones_ids); |
break; |
|
// détail d'un pays |
case 2 : |
case 2 : // détail d'un pays |
$nb_inscrits = $annuaire_controleur->chargerNombreAnnuaireListeInscritsParDepartement($id_annuaire); |
break; |
|
// action par défaut |
default: |
// on renvoie un tableau vide |
$nb_inscrits = array(); |
break; |
} |
|
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 = array(); |
$donnees['url_carte_monde'] = $url_carte_monde; |
$donnees['nom_carte_monde'] = 'Carte du monde'; |
|
361,7 → 337,6 |
} |
|
if($pays != null && trim($pays) != '') { |
|
$templates_continents = $this->renvoyerTousTemplates(); |
$infos_continents = $this->chargerInformationsPaysDuContinentsCsv($templates_continents[$continent]); |
$infos_pays = $infos_continents[$pays]; |
392,42 → 367,32 |
} |
|
$donnees['nb_resultats'] = $this->total_inscrits_zone; |
|
return $donnees; |
} |
|
public function chargerInformationsContinentCsv() { |
|
$nom_csv = Application::getChemin().Config::get('carte_fonds_chemin').'continents'; |
return $this->chargerInformationsCompletesParCsv($nom_csv); |
} |
|
public function chargerInformationsPaysDuContinentsCsv($continent) { |
|
$nom_csv = Application::getChemin().Config::get('carte_fonds_chemin').$continent; |
|
return $this->chargerInformationsCompletesParCsv($nom_csv); |
} |
|
public function chargerInformationsDepartementsFranceCsv() { |
|
$nom_csv = Application::getChemin().Config::get('carte_fonds_chemin').'france'; |
|
return $this->chargerInformationsCompletesParCsv($nom_csv); |
} |
|
public 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++; |
434,9 → 399,7 |
} |
fclose($handle); |
} |
|
return $infos; |
|
} |
|
/** |
445,15 → 408,11 |
* @return array un tableau contenant les identifiants des zones |
*/ |
private function chargerZonesParCsv($nom_csv) { |
|
$fichier_csv = $nom_csv.'.csv'; |
$zones_id = array(); |
|
if (($handle = fopen($fichier_csv, 'r')) !== false) { |
$ligne = 0; |
|
while (($donnees = fgetcsv($handle, 1000, ',')) !== false) { |
|
if($ligne != 0 && trim($donnees[0]) != '') { |
$zones_id[] = "'".$donnees[0]."'"; |
} |
461,8 → 420,6 |
} |
fclose($handle); |
} |
|
return $zones_id; |
} |
} |
?> |
} |
Property changes: |
Added: svnkit:entry:sha1-checksum |
+be06e5e37b1d0280628ea8db298296154bfefe64 |
\ No newline at end of property |