Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 268 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 268 Rev 277
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
 * Classe de gestion des epeces.
4
 * Classe de gestion des epeces.
5
 *
5
 *
6
 * @package     Collection
6
 * @package     Collection
7
 * @category    Php 5.2
7
 * @category    Php 5.2
8
 * @author      Aurélien PERONNET <aurelien@tela-botanica.org>
8
 * @author      Aurélien PERONNET <aurelien@tela-botanica.org>
9
 * @copyright   2010 Tela-Botanica
9
 * @copyright   2010 Tela-Botanica
10
 * @license     http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
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
11
 * @license     http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
12
 * @version     SVN: $Id: Espece.php 152 2010-09-06 16:19:12Z jpm $
12
 * @version     SVN: $Id: Espece.php 152 2010-09-06 16:19:12Z jpm $
13
 */
13
 */
14
class Rendu extends aControleur {
14
class Rendu extends aControleur {
15
	
15
	
16
    public function __construct()  {
16
    public function __construct()  {
17
    	
17
    	
18
		parent::__construct();
18
		parent::__construct();
19
        $this->initialiser();
19
        $this->initialiser();
20
    }
20
    }
21
    
21
    
22
    public function executerActionParDefaut() {
22
    public function executerActionParDefaut() {
23
    	return $this->afficherCarte();
23
    	return $this->afficherCarte();
24
    }
24
    }
25
    
25
    
26
    private function initialiser() {
26
    private function initialiser() {
27
    	
27
    	
28
    }
28
    }
29
	
29
	
30
	private function afficherCarte() {
30
	private function afficherCarte() {
31
		
31
		
32
		$carte = $this->getCarteDemandee();
32
		$carte = $this->getCarteDemandee();
33
		
33
		
34
		$espece_dao = new EspeceDao();
34
		$espece_dao = new EspeceDao();
35
		$especes = $espece_dao->getListeEspecesParType();
35
		$especes = $espece_dao->getListeEspecesParType();
36
		
36
		
37
		$evenements_dao = new EvenementDao();
37
		$evenements_dao = new EvenementDao();
38
		$evenements = $evenements_dao->getListeEvenements();
38
		$evenements = $evenements_dao->getListeEvenements();
39
		
39
		
40
		$chaine_variables_script = '<script type="text/javascript" language="javascript">';
40
		$chaine_variables_script = '<script type="text/javascript" language="javascript">';
41
		
41
		
42
		$chaine_variables_script .= ' var url_widget = "'.Liens::getUrlBaseComplete().'"; ';
42
		$chaine_variables_script .= ' var url_widget = "'.Liens::getUrlBaseComplete().'"; ';
43
		$chaine_variables_script .= ' var tableau_especes = new Array(); ';
43
		$chaine_variables_script .= ' var tableau_especes = new Array(); ';
44
		$chaine_variables_script .= ' var tableau_evenements_especes = new Array(); ';
44
		$chaine_variables_script .= ' var tableau_evenements_especes = new Array(); ';
45
		$chaine_variables_script .= ' var tableau_evenements = new Array(); ';
45
		$chaine_variables_script .= ' var tableau_evenements = new Array(); ';
46
		
46
		
47
		foreach($especes as $id_type_espece => $type_espece) {
47
		foreach($especes as $id_type_espece => $type_espece) {
48
			
48
			
49
			$chaine_variables_script .= 'tableau_especes['.$id_type_espece.'] = new Array();';
49
			$chaine_variables_script .= 'tableau_especes['.$id_type_espece.'] = new Array();';
50
			
50
			
51
			foreach($type_espece['especes'] as $id_espece => $espece) {
51
			foreach($type_espece['especes'] as $id_espece => $espece) {
52
				$chaine_variables_script .= 'tableau_especes['.$id_type_espece.']['.$id_espece.'] = "'.$espece['nom_vernaculaire'].'";';
52
				$chaine_variables_script .= 'tableau_especes['.$id_type_espece.']['.$id_espece.'] = "'.$espece['nom_vernaculaire'].'";';
53
				$chaine_variables_script .= 'tableau_evenements_especes['.$id_espece.'] = "'.$espece['evenements'].'";';
53
				$chaine_variables_script .= 'tableau_evenements_especes['.$id_espece.'] = "'.$espece['evenements'].'";';
54
			}
54
			}
55
		}
55
		}
56
		
56
		
57
		foreach($evenements as $id_evenement => $evenement) {
57
		foreach($evenements as $id_evenement => $evenement) {
58
			$nom_evenement = $evenement['nom'];
58
			$nom_evenement = $evenement['nom'];
59
			if(trim($evenement['nom']) != '') {
59
			if(trim($evenement['nom']) != '') {
60
				$nom_evenement .= ' stade '.$evenement['code'];
60
				$nom_evenement .= ' stade '.$evenement['code'];
61
			}
61
			}
62
			$chaine_variables_script .= 'tableau_evenements['.$id_evenement.'] = "'.$nom_evenement.'";';
62
			$chaine_variables_script .= 'tableau_evenements['.$id_evenement.'] = "'.$nom_evenement.'";';
63
		}
63
		}
-
 
64
		$url_limites_communales = $this->obtenirUrlsLimitesCommunales();
-
 
65
		$chaine_variables_script .= 'var urlsLimitesCommunales = '.$url_limites_communales.';';
64
		
66
		
65
		$chaine_variables_script .= '</script> ';
67
		$chaine_variables_script .= '</script> ';
66
		$chaine_variables_script .= '<script type="text/javascript" src="'.Liens::getUrlScript().'rendu_'.$carte.'.js"></script>';
68
		$chaine_variables_script .= '<script type="text/javascript" src="'.Liens::getUrlScript().'rendu_'.$carte.'.js"></script>';
67
		
69
		
68
		$donnees = array();
70
		$donnees = array();
69
		$donnees['url'] = Liens::getUrlBaseComplete().'rendu_widget.php?carte='.$carte;
71
		$donnees['url'] = Liens::getUrlBaseComplete().'rendu_widget.php?carte='.$carte;
70
		$donnees['script'] = $chaine_variables_script;
72
		$donnees['script'] = $chaine_variables_script;
71
		$donnees['especes'] = $especes; 
73
		$donnees['especes'] = $especes; 
72
		$donnees['evenements'] = $evenements;
74
		$donnees['evenements'] = $evenements;
73
		
75
		
74
		$formulaire = $this->getVue('cartes/observations_'.$carte,$donnees);
76
		$formulaire = $this->getVue('cartes/observations_'.$carte,$donnees);
75
    	$this->setSortie(self::RENDU_CORPS, $formulaire); 
77
    	$this->setSortie(self::RENDU_CORPS, $formulaire); 
76
	}
78
	}
77
	
79
	
78
	private function getCarteDemandee() {
80
	private function getCarteDemandee() {
79
		
81
		
80
		$carte = 'especes';
82
		$carte = 'especes';
81
		
83
		
82
		if(isset($_GET['carte'])) {
84
		if(isset($_GET['carte'])) {
83
			$carte = $_GET['carte'];
85
			$carte = $_GET['carte'];
84
		}
86
		}
85
		
87
		
86
		return $carte;
88
		return $carte;
87
	}
89
	}
-
 
90
	
-
 
91
	private function obtenirUrlsLimitesCommunales() {
-
 
92
		$urls = null;
-
 
93
		if (isset($_GET['departement'])) {
-
 
94
			// si on veut afficher les limites départementales on va compter et chercher les noms de fichiers
-
 
95
			$fichiersKml = $this->chercherFichierKml();
-
 
96
			if (count($fichiersKml) > 0) {
-
 
97
				foreach ($fichiersKml as $kml => $dossier){
-
 
98
					$url_limites_communales = sprintf(Config::get('limitesCommunaleUrlTpl'), $dossier, $kml);
-
 
99
					$urls[] = $url_limites_communales;
-
 
100
				}
-
 
101
			}
-
 
102
		}
-
 
103
		$urls = json_encode($urls);
-
 
104
		return $urls;
-
 
105
	}
-
 
106
	
-
 
107
	private function chercherFichierKml(){
-
 
108
		$fichiers = array();
-
 
109
		$chemins = explode(',', Config::get('communesKmzChemin'));
-
 
110
		$departements = explode(',', $_GET['departement']);// plrs code de départements peuvent être demandés séparés par des virgules
-
 
111
		$departements_trouves = array();
-
 
112
		foreach ($chemins as $dossier_chemin) {
-
 
113
			if ($dossier_ressource = opendir($dossier_chemin)) {
-
 
114
				while ($element = readdir($dossier_ressource)) {
-
 
115
					if ($element != '.' && $element != '..') {
-
 
116
						foreach ($departements as $departement) {
-
 
117
							$nom_dossier = basename($dossier_chemin);
-
 
118
							if (!isset($departements_trouves[$departement]) || $departements_trouves[$departement] == $nom_dossier) {
-
 
119
								$dept_protege = preg_quote($departement);
-
 
120
								if (!is_dir($dossier_chemin.'/'.$element) && preg_match("/^$dept_protege(?:_[0-9]+|)\.km[lz]$/", $element)) {
-
 
121
									$fichiers[$element] = $nom_dossier;
-
 
122
									$departements_trouves[$departement] = $nom_dossier;
-
 
123
								}
-
 
124
							}
-
 
125
						}
-
 
126
					}
-
 
127
				}
-
 
128
				closedir($dossier_ressource);
-
 
129
			}
-
 
130
		}
-
 
131
	
-
 
132
		return $fichiers;
88
	
133
	}	
89
}
134
}