Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 287 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 287 Rev 292
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
 * Classe d'administration de l'application
4
 * Classe d'administration de l'application
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   2013 Tela-Botanica
9
 * @copyright   2013 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 Administration extends aControleur {
14
class Administration extends aControleur {
15
	
15
	
16
	public function __construct()  {
16
	public function __construct()  {
17
		parent::__construct();
17
		parent::__construct();
18
		$this->initialiser();
18
		$this->initialiser();
19
	}
19
	}
20
	
20
	
21
	public function initialiser() { 
21
	public function initialiser() { 
22
 
22
 
23
	}
23
	}
-
 
24
	
-
 
25
	public function executerActionParDefaut() {
-
 
26
		$this->afficherListeEspecesAdministrables();
-
 
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();
28
		$liste = $this->getVue('listes/espece_liste_administration',$donnees);
32
		$liste = $this->getVue('listes/espece_liste_administration',$donnees);
29
		$this->setSortie(self::RENDU_CORPS, $liste);    
33
		$this->setSortie(self::RENDU_CORPS, $liste);    
30
	}
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;
-
 
42
		$formulaire = $this->getVue('formulaires/espece_ajout_administration',$donnees);
-
 
43
		$this->setSortie(self::RENDU_CORPS, $formulaire);
-
 
44
	}
31
	
45
	
32
	public function afficherFormulaireModificationEspeceAdmin($valeurs_precedentes = array()) {
46
	public function afficherFormulaireModificationEspeceAdmin($valeurs_precedentes = array()) {
33
		$id_espece = $_GET['id_espece'];	
47
		$id_espece = $_GET['id_espece'];	
34
		$espece_dao = new EspeceDao();
48
		$espece_dao = new EspeceDao();
35
		$erreurs = isset($valeurs_precedentes['erreurs']) ? $valeurs_precedentes['erreurs'] : array();
49
		$erreurs = isset($valeurs_precedentes['erreurs']) ? $valeurs_precedentes['erreurs'] : array();
36
		$valeurs_precedentes['erreurs'];
-
 
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);
39
		$donnees['erreurs'] = $erreurs;
52
		$donnees['erreurs'] = $erreurs;
40
		$formulaire = $this->getVue('formulaires/espece_modification_administration',$donnees);
53
		$formulaire = $this->getVue('formulaires/espece_modification_administration',$donnees);
41
		$this->setSortie(self::RENDU_CORPS, $formulaire);
54
		$this->setSortie(self::RENDU_CORPS, $formulaire);
42
	}
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);
-
 
64
		$donnees['erreurs'] = $erreurs;
-
 
65
		$formulaire = $this->getVue('formulaires/espece_ajout_image_administration',$donnees);
-
 
66
		$this->setSortie(self::RENDU_CORPS, $formulaire);
-
 
67
	}
43
	
68
	
44
// +---------------------------------------------------------------------------------------------------------------+
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
    		}
-
 
136
    	}
-
 
137
    	
-
 
138
    	return $retour;
-
 
139
    }
45
    // METHODES DE VALIDATION DE FORMULAIRE 
140
	
46
	public function validerFormulaireModificationEspeceAdmin() {
141
	public function validerFormulaireModificationEspeceAdmin() {
47
		$donnees = $_POST;
142
		$donnees = $_POST;
48
	    $verification_ou_erreurs = $this->verifierValeursEspece($donnees);
143
	    $verification_ou_erreurs = $this->verifierValeursEspece($donnees);
49
    	if($verification_ou_erreurs !== true) {    		
144
    	if($verification_ou_erreurs !== true) {    		
50
    		$donnees['erreurs'] = $verification_ou_erreurs;
145
    		$donnees['erreurs'] = $verification_ou_erreurs;
51
    		$this->afficherFormulaireModificationEspeceAdmin($donnees);
146
    		$this->afficherFormulaireModificationEspeceAdmin($donnees);
52
    		return;
147
    		return;
53
    	}
148
    	}
54
    	
149
    	
55
    	if(isset($donnees['espece_active'])) {
150
    	if(isset($donnees['espece_active'])) {
56
    		$donnees['espece_active'] = 1; 
151
    		$donnees['espece_active'] = 1; 
57
    	} else {
152
    	} else {
58
    		$donnees['espece_active'] = 0;
153
    		$donnees['espece_active'] = 0;
59
    	}
154
    	}
60
    	
155
    	
61
    	$espece_dao = new EspeceDao();
156
    	$espece_dao = new EspeceDao();
62
    	$id_espece = $donnees['id_espece'];
157
    	$id_espece = $donnees['id_espece'];
63
    	unset($donnees['id_espece']);
158
    	unset($donnees['id_espece']);
64
    	$retour_modif_espece = $espece_dao->modifierEspece($id_espece, $donnees);
159
    	$retour_modif_espece = $espece_dao->modifierEspece($id_espece, $donnees);
65
    	
160
    	
66
    	if($retour_modif_espece) {
161
    	if($retour_modif_espece) {
67
    		$this->afficherListeEspecesAdministrables();
162
    		$this->afficherListeEspecesAdministrables();
68
    	} else {	 
163
    	} else {	 
69
    		$this->afficherFormulaireModificationEspeceAdmin($donnees);
164
    		$this->afficherFormulaireModificationEspeceAdmin($donnees);
70
    	}
165
    	}
71
    }
166
    }
-
 
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;
-
 
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)) {
83
    		return $erreurs;
232
    		return $erreurs;
84
    	}
233
    	}
85
    	
234
    	
86
    	return true;
235
    	return true;
87
    }
236
    }
88
}
237
}
89
?>
238
?>