Subversion Repositories Sites.obs-saisons.fr

Rev

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

Rev 95 Rev 112
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
 * Classe de test des Controleurs.
4
 * Classe de test des Controleurs.
5
 *
5
 *
6
 * @package     Collection
6
 * @package     Collection
7
 * @category    Php 5.2
7
 * @category    Php 5.2
8
 * @author      Jean-Pascal MILCENT <jpm@tela-botanica.org>
8
 * @author      Jean-Pascal MILCENT <jpm@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: Fiche.php 152 2010-09-06 16:19:12Z jpm $
12
 * @version     SVN: $Id: Fiche.php 152 2010-09-06 16:19:12Z jpm $
13
 */
13
 */
14
class Station extends aControleur {
14
class Station extends aControleur {
15
 
15
 
16
	private $id_station_en_cours = null;
16
	private $id_station_en_cours = null;
17
   
17
   
18
    public function __construct()  {
18
    public function __construct()  {
19
    	
19
    	
20
		parent::__construct();
20
		parent::__construct();
21
        $this->initialiser();
21
        $this->initialiser();
22
    }
22
    }
23
    
23
    
24
    public function initialiser() {
24
    public function initialiser() {
25
    	
25
    	
26
    	if(isset($_GET['id_station'])) {
26
    	if(isset($_GET['id_station'])) {
27
    		$this->id_station_en_cours = $_GET['id_station'];
27
    		$this->id_station_en_cours = $_GET['id_station'];
28
    	}
28
    	}
29
    	$this->setNavigation();
29
    	$this->setNavigation();
30
    	
30
    	
31
    }
31
    }
32
    
32
    
33
    public function executerActionParDefaut() {
33
    public function executerActionParDefaut() {
34
    	return $this->afficherFormulaireSaisieStation();
34
    	return $this->afficherFormulaireSaisieStation();
35
    }
35
    }
36
    
36
    
37
   	// +---------------------------------------------------------------------------------------------------------------+
37
   	// +---------------------------------------------------------------------------------------------------------------+
38
    // METHODES D'AFFICHAGE DE FORMULAIRE 
38
    // METHODES D'AFFICHAGE DE FORMULAIRE 
39
    public function afficherFormulaireSaisieStation() {
39
    public function afficherFormulaireSaisieStation($donnees = array()) {
40
    	
40
    	
-
 
41
    	if($donnees == array()) {
-
 
42
    		
-
 
43
	    	$donnees['station_commune'] = '';
-
 
44
		    $donnees['station_milieu'] = '';
-
 
45
		    $donnees['station_nom'] = '';
-
 
46
		    $donnees['station_lat'] = '';
-
 
47
		    $donnees['station_lon'] = '';
-
 
48
		   	$donnees['station_alt'] = '';
41
    	$donnees = array();
49
    	}
42
    	
50
    	
43
    	$donnees['milieux'] = $this->getListeMilieux();
51
    	$donnees['milieux'] = $this->getListeMilieux();
44
    	$formulaire = $this->getVue('formulaires/station_saisie',$donnees);
52
    	$formulaire = $this->getVue('formulaires/station_saisie',$donnees);
45
    	$this->setSortie(self::RENDU_CORPS, $formulaire);     
53
    	$this->setSortie(self::RENDU_CORPS, $formulaire);     
46
    }
54
    }
47
    
55
    
48
	public function afficherFormulaireModificationStation() {
-
 
49
		
-
 
50
    	$donnees = array();
56
	public function afficherFormulaireModificationStation($donnees = array()) {
51
    	
57
    	
52
    	$id_station = $this->id_station_en_cours;
58
    	$id_station = $this->id_station_en_cours;
53
    	$donnees['milieux'] = $this->getListeMilieux();
59
    	$donnees['milieux'] = $this->getListeMilieux();
54
    	$donnees['infos_station'] = $this->getInformationsStation($id_station);
60
    	$donnees['infos_station'] = $this->getInformationsStation($id_station);
55
    	
61
    	
56
    	$formulaire = $this->getVue('formulaires/station_modification',$donnees);
62
    	$formulaire = $this->getVue('formulaires/station_modification',$donnees);
57
    	$this->setSortie(self::RENDU_CORPS, $formulaire);     
63
    	$this->setSortie(self::RENDU_CORPS, $formulaire);     
58
    }
64
    }
59
    
65
    
60
    // +---------------------------------------------------------------------------------------------------------------+
66
    // +---------------------------------------------------------------------------------------------------------------+
61
    // METHODES APPELEES LORS DE LA VALIDATION D'UN FORMULAIRE
67
    // METHODES APPELEES LORS DE LA VALIDATION D'UN FORMULAIRE
62
    public function validerFormulaireSaisieStation() {
68
    public function validerFormulaireSaisieStation() {
63
    	
69
    	
-
 
70
    	$valeurs_collectees = $this->collecterValeursFormulaireSaisieStation();
-
 
71
    	
-
 
72
    	$verification_ou_erreurs = $this->verifierValeursStation($valeurs_collectees);
-
 
73
    	
-
 
74
    	if($verification_ou_erreurs !== true) {
-
 
75
    		
-
 
76
    		$donnees = $valeurs_collectees;
-
 
77
    		
-
 
78
    		$donnees['erreurs'] = $verification_ou_erreurs;
-
 
79
    		$this->afficherFormulaireSaisieStation($donnees);
-
 
80
    		return;
-
 
81
    	}
-
 
82
    	
64
    	$valeurs_verifiees = $this->collecterValeursFormulaireSaisieStation();
83
    	$valeurs_verifiees = $valeurs_collectees;
65
    	    	
84
    	    	
66
    	$station_dao = new StationDao();
85
    	$station_dao = new StationDao();
67
    	$retour_ajout_station = $station_dao->ajouterStation($valeurs_verifiees);
86
    	$retour_ajout_station = $station_dao->ajouterStation($valeurs_verifiees);
68
    	
87
    	
69
    	if($id_nouvelle_station = $this->renvoyerIdSiAjoutStationEffectue($retour_ajout_station)) {
88
    	if($id_nouvelle_station = $this->renvoyerIdSiAjoutStationEffectue($retour_ajout_station)) {
70
    		$this->id_station_en_cours = $id_nouvelle_station;
89
    		$this->id_station_en_cours = $id_nouvelle_station;
71
    		$this->afficherInformationsStation();  
90
    		$this->afficherInformationsStation();  
72
    		$this->setNavigation();
91
    		$this->setNavigation();
73
    	}
92
    	}
74
    }
93
    }
75
    
94
    
76
    private function renvoyerIdSiAjoutStationEffectue($donnees_retour_dao) {
95
    private function renvoyerIdSiAjoutStationEffectue($donnees_retour_dao) {
77
    	
96
    	
78
    	if(isset($donnees_retour_dao['id_nouvelle_station'])) {
97
    	if(isset($donnees_retour_dao['id_nouvelle_station'])) {
79
    		return $donnees_retour_dao['id_nouvelle_station'];
98
    		return $donnees_retour_dao['id_nouvelle_station'];
80
    	}
99
    	}
81
    	
100
    	
82
    	return false;
101
    	return false;
83
    }
102
    }
84
    
103
    
85
    private function collecterValeursFormulaireSaisieStation() {
104
    private function collecterValeursFormulaireSaisieStation() {
86
    	
105
    	
87
    	$valeurs_verifiees['station_commune'] = $_POST['station_commune'];
106
    	$valeurs_collectees['station_commune'] = $_POST['station_commune'];
88
	    $valeurs_verifiees['station_milieu'] =  $_POST['station_milieu'];
107
	    $valeurs_collectees['station_milieu'] =  $_POST['station_milieu'];
89
	    $valeurs_verifiees['station_nom'] = $_POST['station_nom'];
108
	    $valeurs_collectees['station_nom'] = $_POST['station_nom'];
90
	    $valeurs_verifiees['station_lat'] =  $_POST['station_lat']; 
109
	    $valeurs_collectees['station_lat'] =  $_POST['station_lat']; 
91
	    $valeurs_verifiees['station_lon'] = $_POST['station_lon'];
110
	    $valeurs_collectees['station_lon'] = $_POST['station_lon'];
92
	   	$valeurs_verifiees['station_alt'] = $_POST['station_alt'];
-
 
93
	    
-
 
94
	    //TODO: verifier valeurs plus complètement
111
	   	$valeurs_collectees['station_alt'] = $_POST['station_alt'];
95
	    
112
	    
96
	    return $valeurs_verifiees;
113
	    return $valeurs_collectees;
97
    	
114
    	
98
    }
115
    }
99
    
116
    
100
	private function collecterValeursFormulaireModificationStation() {
117
	private function collecterValeursFormulaireModificationStation() {
101
    	
118
    	
102
    	$valeurs_verifiees['station_commune'] = $_POST['station_commune'];
119
    	$valeurs_collectees['station_commune'] = $_POST['station_commune'];
103
	    $valeurs_verifiees['station_milieu'] =  $_POST['station_milieu'];
120
	    $valeurs_collectees['station_milieu'] =  $_POST['station_milieu'];
104
	    $valeurs_verifiees['station_nom'] = $_POST['station_nom'];
121
	    $valeurs_collectees['station_nom'] = $_POST['station_nom'];
105
	    $valeurs_verifiees['station_lat'] =  $_POST['station_lat']; 
122
	    $valeurs_collectees['station_lat'] =  $_POST['station_lat']; 
106
	    $valeurs_verifiees['station_lon'] = $_POST['station_lon'];
123
	    $valeurs_collectees['station_lon'] = $_POST['station_lon'];
107
	    $valeurs_verifiees['station_alt'] = $_POST['station_alt'];
124
	    $valeurs_collectees['station_alt'] = $_POST['station_alt'];
108
	    $valeurs_verifiees['station_id'] = $_POST['station_id'];
125
	    $valeurs_collectees['station_id'] = $_POST['station_id'];
-
 
126
	    
-
 
127
	    return $valeurs_collectees;
109
	    
128
    	
-
 
129
    }
-
 
130
    
-
 
131
    private function verifierValeursStation($valeurs_a_verifier) {
-
 
132
    	
-
 
133
    	$erreurs = array();
-
 
134
    	
-
 
135
    	foreach($valeurs_a_verifier as $champ => $valeur) {
-
 
136
    		if(trim($valeur) == '') {
-
 
137
    			$erreurs[$champ] .= ' Ce champ ne peut pas être vide'; 
-
 
138
    		}
-
 
139
    	}
110
	    //TODO: verifier valeurs plus complètement
140
    	
-
 
141
    	if(!empty($erreurs)) {
-
 
142
    		return $erreurs;
111
	    
143
    	}
112
	    return $valeurs_verifiees;
144
    	
113
    	
145
    	return true;
114
    }
146
    }
115
    
147
    
116
    public function validerFormulaireModificationStation() {
148
    public function validerFormulaireModificationStation() {
117
    	
149
    	
118
    	$valeurs_verifiees = $this->collecterValeursFormulaireModificationStation();
150
    	$valeurs_verifiees = $this->collecterValeursFormulaireModificationStation();
119
    	
151
    	
120
    	$station_dao = new StationDao();
152
    	$station_dao = new StationDao();
121
    	$retour_modification = $station_dao->modifierStation($valeurs_verifiees['station_id'],$valeurs_verifiees);
153
    	$retour_modification = $station_dao->modifierStation($valeurs_verifiees['station_id'],$valeurs_verifiees);
122
    	
154
    	
123
    	if($retour_modification) {
155
    	if($retour_modification) {
124
    		$this->afficherInformationsStation();  
156
    		$this->afficherInformationsStation();  
125
    		$this->setNavigation();
157
    		$this->setNavigation();
126
    	}
158
    	}
127
    	
159
    	
128
    }
160
    }
129
        
161
        
130
	// +---------------------------------------------------------------------------------------------------------------+
162
	// +---------------------------------------------------------------------------------------------------------------+
131
    // METHODES D'AFFICHAGES D'INFORMATION
163
    // METHODES D'AFFICHAGES D'INFORMATION
132
    public function afficherlisteStation($param = null) {	
164
    public function afficherlisteStation($param = null) {	
133
    	
165
    	
134
    	$id_utilisateur = AppControleur::getIdUtilisateur();
166
    	$id_utilisateur = AppControleur::getIdUtilisateur();
135
    	
167
    	
136
    	$donnees['stations'] = $this->getListeStations($id_utilisateur);
168
    	$donnees['stations'] = $this->getListeStations($id_utilisateur);
137
        $this->setSortie(self::RENDU_CORPS, $this->getVue('listes/station_liste', $donnees));
169
        $this->setSortie(self::RENDU_CORPS, $this->getVue('listes/station_liste', $donnees));
138
    }
170
    }
139
    
171
    
140
    public function afficherInformationsStation() {
172
    public function afficherInformationsStation() {
141
    	
173
    	
142
    	$id_station = $this->id_station_en_cours;
174
    	$id_station = $this->id_station_en_cours;
143
    	
175
    	
144
    	$donnees['id_station'] = $id_station;
176
    	$donnees['id_station'] = $id_station;
145
    	$donnees['infos_station'] = $this->getInformationsStation($id_station);
177
    	$donnees['infos_station'] = $this->getInformationsStation($id_station);
146
    	$donnees['milieux'] = $this->getListeMilieux();
178
    	$donnees['milieux'] = $this->getListeMilieux();
147
    	
179
    	
148
    	$this->setSortie(self::RENDU_CORPS, $this->getVue('fiches/station_fiche', $donnees));
180
    	$this->setSortie(self::RENDU_CORPS, $this->getVue('fiches/station_fiche', $donnees));
149
    	
181
    	
150
    }
182
    }
151
   
183
   
152
    // +---------------------------------------------------------------------------------------------------------------+
184
    // +---------------------------------------------------------------------------------------------------------------+
153
    // METHODES POUR FABRIQUER LE MENU
185
    // METHODES POUR FABRIQUER LE MENU
154
    public function construireMenuNavigation($id_espece_en_cours = null) {
186
    public function construireMenuNavigation($id_espece_en_cours = null) {
155
    	    	    	
187
    	    	    	
156
    	$id_station_en_cours = $this->id_station_en_cours;
188
    	$id_station_en_cours = $this->id_station_en_cours;
157
    	
189
    	
158
    	if(isset($_GET['id_espece'])) {
190
    	if(isset($_GET['id_espece'])) {
159
    		$id_espece_en_cours = $_GET['id_espece'];
191
    		$id_espece_en_cours = $_GET['id_espece'];
160
    	}
192
    	}
161
 
193
 
162
    	
194
    	
163
    	$stations = $this->getListeStations();
195
    	$stations = $this->getListeStations();
164
    	    	
196
    	    	
165
    	foreach($stations as &$station) {  
197
    	foreach($stations as &$station) {  
166
    		        	
198
    		        	
167
    		$station['url'] = Liens::getUrlConsultationFicheStation($station['id']);
199
    		$station['url'] = Liens::getUrlConsultationFicheStation($station['id']);
168
    	}
200
    	}
169
    	
201
    	
170
    	if($id_station_en_cours != null && $id_station_en_cours != 'saisie') {
202
    	if($id_station_en_cours != null && $id_station_en_cours != 'saisie') {
171
    		$especes_station_en_cours = $this->getEspecesStation($id_station_en_cours);
203
    		$especes_station_en_cours = $this->getEspecesStation($id_station_en_cours);
172
    		
204
    		
173
    	    foreach($especes_station_en_cours as &$espece) {   		
205
    	    foreach($especes_station_en_cours as &$espece) {   		
174
    			$espece['url'] = Liens::getUrlConsultationEspeceStation($id_station_en_cours, $espece['id_espece']);
206
    			$espece['url'] = Liens::getUrlConsultationEspeceStation($id_station_en_cours, $espece['id_espece']);
175
    	    }
207
    	    }
176
    		$stations[$id_station_en_cours]['especes'] = $especes_station_en_cours;
208
    		$stations[$id_station_en_cours]['especes'] = $especes_station_en_cours;
177
    	}
209
    	}
178
    	
210
    	
179
    	$donnees['stations'] = $stations;
211
    	$donnees['stations'] = $stations;
180
    	$donnees['id_station_en_cours'] = $id_station_en_cours;
212
    	$donnees['id_station_en_cours'] = $id_station_en_cours;
181
 
213
 
182
    	$donnees['id_espece_en_cours'] = $id_espece_en_cours;
214
    	$donnees['id_espece_en_cours'] = $id_espece_en_cours;
183
    	
215
    	
184
    	$menu_navigation = $this->getVue('navigation/menu', $donnees);
216
    	$menu_navigation = $this->getVue('navigation/menu', $donnees);
185
    	
217
    	
186
        return $menu_navigation;
218
        return $menu_navigation;
187
        
219
        
188
    }
220
    }
189
    
221
    
190
    public function setNavigation() {
222
    public function setNavigation() {
191
    	$this->setSortie(self::RENDU_NAVIGATION, $this->construireMenuNavigation());
223
    	$this->setSortie(self::RENDU_NAVIGATION, $this->construireMenuNavigation());
192
    }
224
    }
193
    
225
    
194
    // +---------------------------------------------------------------------------------------------------------------+
226
    // +---------------------------------------------------------------------------------------------------------------+
195
    // METHODE D'APPELS AUX DAOS
227
    // METHODE D'APPELS AUX DAOS
196
    protected function getListeStations() { 
228
    protected function getListeStations() { 
197
    	   	
229
    	   	
198
    	$station_dao = new StationDao();
230
    	$station_dao = new StationDao();
199
    	return $station_dao->getListeStations();
231
    	return $station_dao->getListeStations();
200
    }
232
    }
201
    
233
    
202
    private function getInformationsStation($id_station) {
234
    private function getInformationsStation($id_station) {
203
    	
235
    	
204
    	$station_dao = new StationDao();
236
    	$station_dao = new StationDao();
205
    	$infos_station = $station_dao->getInformationsStation($id_station);
237
    	$infos_station = $station_dao->getInformationsStation($id_station);
206
    	
238
    	
207
    	$infos_station['individus'] = $this->getIndividusStation($id_station);
239
    	$infos_station['individus'] = $this->getIndividusStation($id_station);
208
    	
240
    	
209
    	return $infos_station;
241
    	return $infos_station;
210
    }
242
    }
211
    
243
    
212
    private function getEspecesStation($id_station) {
244
    private function getEspecesStation($id_station) {
213
    	
245
    	
214
    	$espece_dao = new EspeceDao();
246
    	$espece_dao = new EspeceDao();
215
    	$liste_especes = $espece_dao->getListeEspecesPourStation($id_station);
247
    	$liste_especes = $espece_dao->getListeEspecesPourStation($id_station);
216
    	
248
    	
217
    	return $liste_especes;
249
    	return $liste_especes;
218
    }
250
    }
219
    
251
    
220
    public function getIndividusStation($id_station) {
252
    public function getIndividusStation($id_station) {
221
    	
253
    	
222
    	$individu_dao = new IndividuDao();
254
    	$individu_dao = new IndividuDao();
223
    	$liste_individus = $individu_dao->getListeIndividusPourStation($id_station);
255
    	$liste_individus = $individu_dao->getListeIndividusPourStation($id_station);
224
    	
256
    	
225
    	return $liste_individus;
257
    	return $liste_individus;
226
    }
258
    }
227
    
259
    
228
	public function getIndividusStationPourEspece($id_station,$id_espece) {
260
	public function getIndividusStationPourEspece($id_station,$id_espece) {
229
    	
261
    	
230
    	$individu_dao = new IndividuDao();
262
    	$individu_dao = new IndividuDao();
231
    	$liste_individus = $individu_dao->getListeIndividusPourStationPourEspece($id_station, $id_espece);
263
    	$liste_individus = $individu_dao->getListeIndividusPourStationPourEspece($id_station, $id_espece);
232
    	
264
    	
233
    	return $liste_individus;
265
    	return $liste_individus;
234
    }
266
    }
235
    
267
    
236
    public function getListeMilieux() {
268
    public function getListeMilieux() {
237
    	
269
    	
238
    	$triple_dao = new TripleDao();
270
    	$triple_dao = new TripleDao();
239
    	$liste_milieux = $triple_dao->getListeMilieux();
271
    	$liste_milieux = $triple_dao->getListeMilieux();
240
    	
272
    	
241
    	return $liste_milieux;
273
    	return $liste_milieux;
242
    }
274
    }
243
}
275
}
244
?>
276
?>