Subversion Repositories eFlore/Applications.coel-consultation

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
25 jpm 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
 * @copyright	2010 Tela-Botanica
10
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
12
 * @version		SVN: $Id$
13
 */
14
class Carte extends ColControleur {
15
 
16
	//+----------------------------------------------------------------------------------------------------------------+
17
	// Méthodes
18
	/**
19
	 * Fonction d'affichage par défaut, elle appelle la liste des administrateurs
20
	 */
21
	public function executerActionParDefaut() {
22
		return $this->cartographier();
23
	}
24
 
25
	/**
26
	 * Cartographier les collections.
27
	 * @return string la vue correspondante
28
	 */
29
	public function cartographier() {
30
		// Initialisation de variable
31
		$donnees = array();
32
 
33
		// Création de la carte
34
		$options = array(
30 jpm 35
			'carte_nom' => 'col_str_dep',
36
			'formule' => Cartographie::FORMULE_PROPORTIONNEL,
37
			'couleur_claire' => Config::get('carte_couleur_claire'),
38
			'couleur_foncee' => Config::get('carte_couleur_foncee'),
25 jpm 39
			'fond_fichier' => Config::get('carte_base_nom'),
30 jpm 40
			'fond_dossier' => Application::getChemin().Config::get('carte_fonds_chemin'),
41
			'stock_dossier' => Config::get('carte_sotckage_chemin'),
42
			'stock_url' => Config::get('carte_sotckage_url'),
43
			'debug' => Config::get('carte_mode_debug'));
25 jpm 44
		$cartographie = Composant::fabrique('cartographie', $options);
30 jpm 45
		// Construction des données nécessaires à la cartographie
46
		$zones = $cartographie->getCarteZones();
47
		$this->chargerZonesNbre($zones);
48
		$this->chargerZonesUrls($zones);
49
		$cartographie->setCarteZones($zones);
50
		//Debug::printr($zones);
51
 
25 jpm 52
		$cartographie->creerCarte();
53
		$donnees['map'] = $cartographie->getImageMap();
54
 
55
		$resultat = $this->getVue('carte', $donnees);
56
		$this->setSortie(self::RENDU_CORPS, $resultat);
57
	}
58
 
30 jpm 59
	private function chargerZonesNbre(&$zones) {
60
		$structureDao = $this->getModele('StructureDao');
61
		$zones_infos = $structureDao->getStructureParZoneGeo('FRD');
25 jpm 62
		foreach ($zones as $id => &$infos) {
63
			if (isset($zones_infos[$id])) {
64
				$nbre = $zones_infos[$id];
30 jpm 65
				$infos['info_nombre'] = $nbre;
25 jpm 66
			} else {
30 jpm 67
				$infos['info_nombre'] = 0;
25 jpm 68
			}
69
		}
70
	}
71
 
30 jpm 72
	private function chargerZonesUrls(&$zones) {
25 jpm 73
		$this->url->setVariableRequete('module', 'Recherche');
74
		$this->url->setVariableRequete('action', 'rechercher');
30 jpm 75
		$this->url->setVariableRequete('recherche', 'str-d:%s');
25 jpm 76
		$url = $this->url->getURL();
77
		foreach ($zones as $id => &$infos) {
78
			$infos['url'] = sprintf($url, $id);
79
		}
80
		$this->url->unsetVariablesRequete(array('module', 'action', 'recherche'));
81
	}
82
}
83
?>