Rev 287 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// declare(encoding='UTF-8');/*** Classe d'administration de l'application** @package Collection* @category Php 5.2* @author Aurélien PERONNET <aurelien@tela-botanica.org>* @copyright 2013 Tela-Botanica* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL* @version SVN: $Id: Espece.php 152 2010-09-06 16:19:12Z jpm $*/class Administration extends aControleur {public function __construct() {parent::__construct();$this->initialiser();}public function initialiser() {}public function executerActionParDefaut() {$this->afficherListeEspecesAdministrables();}public function afficherListeEspecesAdministrables() {$espece_dao = new EspeceDao();$donnees['especes'] = $espece_dao->getListeEspecesAdminParType();$liste = $this->getVue('listes/espece_liste_administration',$donnees);$this->setSortie(self::RENDU_CORPS, $liste);}public function afficherFormulaireAjoutEspeceAdmin($valeurs_precedentes = array()) {$triple_dao = new TripleDao();$erreurs = isset($valeurs_precedentes['erreurs']) ? $valeurs_precedentes['erreurs'] : array();$donnees['types_especes'] = $triple_dao->getListeTypesEspeces();$donnees['evenements'] = $triple_dao->getListeEvenements();$donnees['erreurs'] = $erreurs;$formulaire = $this->getVue('formulaires/espece_ajout_administration',$donnees);$this->setSortie(self::RENDU_CORPS, $formulaire);}public function afficherFormulaireModificationEspeceAdmin($valeurs_precedentes = array()) {$id_espece = $_GET['id_espece'];$espece_dao = new EspeceDao();$erreurs = isset($valeurs_precedentes['erreurs']) ? $valeurs_precedentes['erreurs'] : array();$donnees['espece'] = $espece_dao->getInformationsEspece($id_espece);$donnees['espece'] = array_merge($donnees['espece'], $valeurs_precedentes);$donnees['erreurs'] = $erreurs;$formulaire = $this->getVue('formulaires/espece_modification_administration',$donnees);$this->setSortie(self::RENDU_CORPS, $formulaire);}public function afficherFormulaireAjoutImageEspeceAdmin($valeurs_precedentes = array()) {$id_espece = $_GET['id_espece'];$espece_dao = new EspeceDao();$erreurs = isset($valeurs_precedentes['erreurs']) ? $valeurs_precedentes['erreurs'] : array();$donnees['espece'] = $espece_dao->getInformationsEspece($id_espece);$donnees['espece']['nom_sci_normalise'] = str_replace(' ','_',strtolower($donnees['espece']['nom_scientifique']));$donnees['espece'] = array_merge($donnees['espece'], $valeurs_precedentes);$donnees['erreurs'] = $erreurs;$formulaire = $this->getVue('formulaires/espece_ajout_image_administration',$donnees);$this->setSortie(self::RENDU_CORPS, $formulaire);}// +---------------------------------------------------------------------------------------------------------------+// METHODES DE VALIDATION DE FORMULAIREpublic function validerFormulaireAjoutImageEspeceAdmin() {$donnees = $_POST;unset($donnees['MAX_FILE_SIZE']);$verification_ou_erreurs = $this->verifierValeursFormulaireImage($donnees);if($verification_ou_erreurs !== true) {$donnees['erreurs'] = $verification_ou_erreurs;$_GET['id_espece'] = $_POST['id_espece'];$this->afficherFormulaireAjoutImageEspeceAdmin($donnees);} else {$chemin_temp = $this->stockerFichierDansDossierEnAttente($_FILES['image_espece']['tmp_name'], $donnees['nom_fichier']);if(!$chemin_temp) {$donnees['erreurs']['image_espece'] = 'Impossible de stocker le fichier';$this->afficherFormulaireModificationEspeceAdmin($donnees);}$donnees['chemin'] = $chemin_temp;$image_dao = new ImageDao();$retour_ajout = $image_dao->ajoutImageEspece($donnees);$_GET['id_espece'] = $_POST['id_espece'];if($retour_ajout) {$this->afficherFormulaireModificationEspeceAdmin($donnees);} else {$this->afficherFormulaireAjoutImageEspeceAdmin($donnees);}}}private function verifierValeursFormulaireImage($donnees) {$erreurs = array();if(empty($_FILES['image_espece']) || $_FILES['image_espece']['size'] == 0) {$erreurs['image_espece'] = 'Ce champ est obligatoire';}$type = getimagesize($_FILES['image_espece']['tmp_name']);if(empty($_FILES['image_espece']) || $type['mime'] != 'image/jpeg') {$erreurs['image_espece'] = 'Le format de l\'image n\'est pas supporté';}if($_FILES['image_espece']['size'] > Config::get('max_taille_fichiers')) {$erreurs['image_espece'] = 'La taille de l\'image dépasse la taille maximale autorisée';}if(trim($donnees['credits']) == '') {$erreurs['credits'] = 'Ce champ est obligatoire';}if(!empty($erreurs)) {return $erreurs;}return true;}private function stockerFichierDansDossierEnAttente($chemin, $nom) {$retour = false;if(is_uploaded_file($chemin)) {$destination = Config::get('chemin_fichiers_temp').'/'.$nom.'.jpg';$stockage = move_uploaded_file($chemin, $destination);chmod($destination, 0777);if($stockage) {$retour = $destination;}}return $retour;}public function validerFormulaireModificationEspeceAdmin() {$donnees = $_POST;$verification_ou_erreurs = $this->verifierValeursEspece($donnees);if($verification_ou_erreurs !== true) {$donnees['erreurs'] = $verification_ou_erreurs;$this->afficherFormulaireModificationEspeceAdmin($donnees);return;}if(isset($donnees['espece_active'])) {$donnees['espece_active'] = 1;} else {$donnees['espece_active'] = 0;}$espece_dao = new EspeceDao();$id_espece = $donnees['id_espece'];unset($donnees['id_espece']);$retour_modif_espece = $espece_dao->modifierEspece($id_espece, $donnees);if($retour_modif_espece) {$this->afficherListeEspecesAdministrables();} else {$this->afficherFormulaireModificationEspeceAdmin($donnees);}}// METHODES DE VALIDATION DE FORMULAIREpublic function validerFormulaireAjoutEspeceAdmin() {$donnees = $_POST;$verification_ou_erreurs = $this->verifierValeursEspece($donnees);$verifications_supplementaires = $this->verifierPresenceValeurEvenement($donnees);$verification_ou_erreurs = $this->mergerErreurs($verification_ou_erreurs, $verifications_supplementaires);if($verification_ou_erreurs !== true) {$donnees['erreurs'] = $verification_ou_erreurs;$this->afficherFormulaireAjoutEspeceAdmin($donnees);return;}$donnees['espece_ecole'] = (isset($donnees['espece_ecole'])) ? $donnees['espece_ecole'] = 1 : $donnees['espece_ecole'] = 0;$donnees['espece_active'] = (isset($donnees['espece_active'])) ? $donnees['espece_active'] = 1 : $donnees['espece_active'] = 0;$donnees['ce_evenements'] = implode(',', $donnees['ce_evenements']);$espece_dao = new EspeceDao();$retour_ajout_espece = $espece_dao->ajoutEspece($donnees);if($retour_ajout_espece) {$this->afficherListeEspecesAdministrables();} else {$this->afficherFormulaireAjoutEspeceAdmin($donnees);}}private function mergerErreurs($verifications_commune, $verifications_specifiques) {$retour = true;if(is_array($verifications_commune) && is_array($verifications_specifiques)) {$retour = array_merge($verifications_commune, $verifications_specifiques);}if(is_array($verifications_commune) && !is_array($verifications_specifiques)) {$retour = $verifications_commune;}if(!is_array($verifications_commune) && is_array($verifications_specifiques)) {$retour = $verifications_specifiques;}return $retour;}private function verifierPresenceValeurEvenement($donnees) {$erreurs = array();if(!(isset($donnees['ce_evenements']) && is_array($donnees['ce_evenements']) && !empty($donnees['ce_evenements']))) {$erreurs['ce_evenements'] = 'Au moins un évènement doit être sélectionné';}if(!empty($erreurs)) {return $erreurs;}return true;}private function verifierValeursEspece($donnees) {$erreurs = array();foreach($donnees as $champ => $valeur) {if(!is_array($valeur) && trim($valeur) == '') {$erreurs[$champ] .= ' Ce champ ne peut pas être vide';}}if(!empty($erreurs)) {return $erreurs;}return true;}}?>