Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 287 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 287 Rev 292
Line 20... Line 20...
20
	
20
	
Line 21... Line 21...
21
	public function initialiser() { 
21
	public function initialiser() { 
Line -... Line 22...
-
 
22
 
-
 
23
	}
-
 
24
	
-
 
25
	public function executerActionParDefaut() {
22
 
26
		$this->afficherListeEspecesAdministrables();
23
	}
27
	}
24
	
28
	
25
	public function afficherListeEspecesAdministrables() {
29
	public function afficherListeEspecesAdministrables() {
26
		$espece_dao = new EspeceDao();
30
		$espece_dao = new EspeceDao();
27
		$donnees['especes'] = $espece_dao->getListeEspecesAdminParType();
31
		$donnees['especes'] = $espece_dao->getListeEspecesAdminParType();
Line -... Line 32...
-
 
32
		$liste = $this->getVue('listes/espece_liste_administration',$donnees);
-
 
33
		$this->setSortie(self::RENDU_CORPS, $liste);    
-
 
34
	}
-
 
35
	
-
 
36
	public function afficherFormulaireAjoutEspeceAdmin($valeurs_precedentes = array()) {
-
 
37
		$triple_dao = new TripleDao();
-
 
38
		$erreurs = isset($valeurs_precedentes['erreurs']) ? $valeurs_precedentes['erreurs'] : array();
-
 
39
		$donnees['types_especes'] = $triple_dao->getListeTypesEspeces();
-
 
40
		$donnees['evenements'] = $triple_dao->getListeEvenements();
-
 
41
		$donnees['erreurs'] = $erreurs;
28
		$liste = $this->getVue('listes/espece_liste_administration',$donnees);
42
		$formulaire = $this->getVue('formulaires/espece_ajout_administration',$donnees);
29
		$this->setSortie(self::RENDU_CORPS, $liste);    
43
		$this->setSortie(self::RENDU_CORPS, $formulaire);
30
	}
44
	}
31
	
45
	
32
	public function afficherFormulaireModificationEspeceAdmin($valeurs_precedentes = array()) {
-
 
33
		$id_espece = $_GET['id_espece'];	
46
	public function afficherFormulaireModificationEspeceAdmin($valeurs_precedentes = array()) {
34
		$espece_dao = new EspeceDao();
47
		$id_espece = $_GET['id_espece'];	
35
		$erreurs = isset($valeurs_precedentes['erreurs']) ? $valeurs_precedentes['erreurs'] : array();
48
		$espece_dao = new EspeceDao();
36
		$valeurs_precedentes['erreurs'];
49
		$erreurs = isset($valeurs_precedentes['erreurs']) ? $valeurs_precedentes['erreurs'] : array();
37
		$donnees['espece'] = $espece_dao->getInformationsEspece($id_espece);
50
		$donnees['espece'] = $espece_dao->getInformationsEspece($id_espece);
38
		$donnees['espece'] = array_merge($donnees['espece'], $valeurs_precedentes);
51
		$donnees['espece'] = array_merge($donnees['espece'], $valeurs_precedentes);
Line -... Line 52...
-
 
52
		$donnees['erreurs'] = $erreurs;
-
 
53
		$formulaire = $this->getVue('formulaires/espece_modification_administration',$donnees);
-
 
54
		$this->setSortie(self::RENDU_CORPS, $formulaire);
-
 
55
	}
-
 
56
	
-
 
57
	public function afficherFormulaireAjoutImageEspeceAdmin($valeurs_precedentes = array()) {
-
 
58
		$id_espece = $_GET['id_espece'];
-
 
59
		$espece_dao = new EspeceDao();
-
 
60
		$erreurs = isset($valeurs_precedentes['erreurs']) ? $valeurs_precedentes['erreurs'] : array();
-
 
61
		$donnees['espece'] = $espece_dao->getInformationsEspece($id_espece);
-
 
62
		$donnees['espece']['nom_sci_normalise'] = str_replace(' ','_',strtolower($donnees['espece']['nom_scientifique']));
-
 
63
		$donnees['espece'] = array_merge($donnees['espece'], $valeurs_precedentes);
39
		$donnees['erreurs'] = $erreurs;
64
		$donnees['erreurs'] = $erreurs;
40
		$formulaire = $this->getVue('formulaires/espece_modification_administration',$donnees);
65
		$formulaire = $this->getVue('formulaires/espece_ajout_image_administration',$donnees);
-
 
66
		$this->setSortie(self::RENDU_CORPS, $formulaire);
-
 
67
	}
-
 
68
	
-
 
69
// +---------------------------------------------------------------------------------------------------------------+
-
 
70
    // METHODES DE VALIDATION DE FORMULAIRE 
-
 
71
    public function validerFormulaireAjoutImageEspeceAdmin() {
-
 
72
    	$donnees = $_POST;
-
 
73
    	unset($donnees['MAX_FILE_SIZE']);
-
 
74
    	
-
 
75
    	$verification_ou_erreurs = $this->verifierValeursFormulaireImage($donnees);
-
 
76
    	if($verification_ou_erreurs !== true) {
-
 
77
    		$donnees['erreurs'] = $verification_ou_erreurs;
-
 
78
    		$_GET['id_espece'] = $_POST['id_espece'];
-
 
79
    		$this->afficherFormulaireAjoutImageEspeceAdmin($donnees);
-
 
80
    	} else {	
-
 
81
	    	$chemin_temp = $this->stockerFichierDansDossierEnAttente($_FILES['image_espece']['tmp_name'], $donnees['nom_fichier']);
-
 
82
	    	
-
 
83
	    	if(!$chemin_temp) {
-
 
84
	    		$donnees['erreurs']['image_espece'] = 'Impossible de stocker le fichier';
-
 
85
	    		$this->afficherFormulaireModificationEspeceAdmin($donnees);
-
 
86
	    	}
-
 
87
	    	
-
 
88
	    	$donnees['chemin'] = $chemin_temp;
-
 
89
	    	$image_dao = new ImageDao();
-
 
90
	    	$retour_ajout = $image_dao->ajoutImageEspece($donnees);
-
 
91
	    	$_GET['id_espece'] = $_POST['id_espece'];
-
 
92
	    	if($retour_ajout) {
-
 
93
	    		$this->afficherFormulaireModificationEspeceAdmin($donnees);
-
 
94
	    	} else {	 
-
 
95
	    		$this->afficherFormulaireAjoutImageEspeceAdmin($donnees);
-
 
96
	    	}
-
 
97
    	}
-
 
98
    }
-
 
99
    
-
 
100
    private function verifierValeursFormulaireImage($donnees) {
-
 
101
    	$erreurs = array();
-
 
102
 
-
 
103
    	if(empty($_FILES['image_espece']) || $_FILES['image_espece']['size'] == 0) {
-
 
104
    		$erreurs['image_espece'] = 'Ce champ est obligatoire';
-
 
105
    	}
-
 
106
    	
-
 
107
    	$type = getimagesize($_FILES['image_espece']['tmp_name']);
-
 
108
        if(empty($_FILES['image_espece']) || $type['mime'] != 'image/jpeg') {
-
 
109
    		$erreurs['image_espece'] = 'Le format de l\'image n\'est pas supporté';
-
 
110
    	}
-
 
111
    	
-
 
112
    	if($_FILES['image_espece']['size'] > Config::get('max_taille_fichiers')) {
-
 
113
    		$erreurs['image_espece'] = 'La taille de l\'image dépasse la taille maximale autorisée';
-
 
114
    	}
-
 
115
    	
-
 
116
    	if(trim($donnees['credits']) == '') {
-
 
117
    		$erreurs['credits'] = 'Ce champ est obligatoire';
-
 
118
    	}
-
 
119
    	
-
 
120
    	if(!empty($erreurs)) {
-
 
121
    		return $erreurs;
-
 
122
    	}
-
 
123
    	
-
 
124
    	return true;
-
 
125
    }
-
 
126
    
-
 
127
    private function stockerFichierDansDossierEnAttente($chemin, $nom) {
-
 
128
    	$retour = false;
-
 
129
    	if(is_uploaded_file($chemin)) {
-
 
130
    		$destination = Config::get('chemin_fichiers_temp').'/'.$nom.'.jpg';
-
 
131
    		$stockage = move_uploaded_file($chemin, $destination);
-
 
132
    		chmod($destination, 0777);
-
 
133
    		if($stockage) {
-
 
134
    			$retour = $destination;
-
 
135
    		}
41
		$this->setSortie(self::RENDU_CORPS, $formulaire);
136
    	}
42
	}
137
    	
43
	
138
    	return $retour;
44
// +---------------------------------------------------------------------------------------------------------------+
139
    }
45
    // METHODES DE VALIDATION DE FORMULAIRE 
140
	
Line 68... Line 163...
68
    	} else {	 
163
    	} else {	 
69
    		$this->afficherFormulaireModificationEspeceAdmin($donnees);
164
    		$this->afficherFormulaireModificationEspeceAdmin($donnees);
70
    	}
165
    	}
71
    }
166
    }
Line -... Line 167...
-
 
167
    
-
 
168
    // METHODES DE VALIDATION DE FORMULAIRE
-
 
169
    public function validerFormulaireAjoutEspeceAdmin() {
-
 
170
    	$donnees = $_POST;
-
 
171
    	$verification_ou_erreurs = $this->verifierValeursEspece($donnees);
-
 
172
    	$verifications_supplementaires = $this->verifierPresenceValeurEvenement($donnees);
-
 
173
 
-
 
174
    	$verification_ou_erreurs = $this->mergerErreurs($verification_ou_erreurs, $verifications_supplementaires);
-
 
175
    	if($verification_ou_erreurs !== true) {
-
 
176
    		$donnees['erreurs'] = $verification_ou_erreurs;
-
 
177
    		$this->afficherFormulaireAjoutEspeceAdmin($donnees);
-
 
178
    		return;
-
 
179
    	}
-
 
180
    	 
-
 
181
    	$donnees['espece_ecole'] = (isset($donnees['espece_ecole'])) ? $donnees['espece_ecole'] = 1 : $donnees['espece_ecole'] = 0; 
-
 
182
    	$donnees['espece_active'] = (isset($donnees['espece_active'])) ? $donnees['espece_active'] = 1 : $donnees['espece_active'] = 0;
-
 
183
    	$donnees['ce_evenements'] = implode(',', $donnees['ce_evenements']);
-
 
184
    	$espece_dao = new EspeceDao();
-
 
185
    	$retour_ajout_espece = $espece_dao->ajoutEspece($donnees);
-
 
186
    	 
-
 
187
    	if($retour_ajout_espece) {
-
 
188
    		$this->afficherListeEspecesAdministrables();
-
 
189
    	} else {
-
 
190
    		$this->afficherFormulaireAjoutEspeceAdmin($donnees);
-
 
191
    	}
-
 
192
    }
-
 
193
    
-
 
194
    private function mergerErreurs($verifications_commune, $verifications_specifiques) {
-
 
195
    	$retour = true;
-
 
196
    	if(is_array($verifications_commune) && is_array($verifications_specifiques)) {
-
 
197
    		$retour = array_merge($verifications_commune, $verifications_specifiques);
-
 
198
    	}
-
 
199
    	
-
 
200
    	if(is_array($verifications_commune) && !is_array($verifications_specifiques)) {
-
 
201
    		$retour = $verifications_commune;
-
 
202
    	}
-
 
203
    	
-
 
204
    	if(!is_array($verifications_commune) && is_array($verifications_specifiques)) {
-
 
205
    		$retour = $verifications_specifiques;
-
 
206
    	}
-
 
207
    	return $retour;
-
 
208
    }
72
    
209
    
73
    private function verifierValeursEspece($donnees) {
210
    private function verifierPresenceValeurEvenement($donnees) {
-
 
211
    	$erreurs = array();
-
 
212
    	if(!(isset($donnees['ce_evenements']) && is_array($donnees['ce_evenements']) && !empty($donnees['ce_evenements']))) {
-
 
213
    		$erreurs['ce_evenements'] = 'Au moins un évènement doit être sélectionné'; 
-
 
214
    	}
-
 
215
    	
-
 
216
    	if(!empty($erreurs)) {
-
 
217
    		return $erreurs;
Line -... Line 218...
-
 
218
    	}
-
 
219
    	
-
 
220
    	return true;
-
 
221
    }
-
 
222
    
74
    	$erreurs = array();
223
    private function verifierValeursEspece($donnees) {
75
    	
224
    	$erreurs = array();
76
    	foreach($donnees as $champ => $valeur) {
225
    	foreach($donnees as $champ => $valeur) {
77
    		if(trim($valeur) == '') {
226
    		if(!is_array($valeur) && trim($valeur) == '') {
78
    			$erreurs[$champ] .= ' Ce champ ne peut pas être vide'; 
227
    			$erreurs[$champ] .= ' Ce champ ne peut pas être vide'; 
79
    		}
228
    		}
80
    	}
229
    	}
81
    	
230
 
82
    	if(!empty($erreurs)) {
231
    	if(!empty($erreurs)) {
Line 83... Line 232...
83
    		return $erreurs;
232
    		return $erreurs;