22,6 → 22,10 |
|
} |
|
public function executerActionParDefaut() { |
$this->afficherListeEspecesAdministrables(); |
} |
|
public function afficherListeEspecesAdministrables() { |
$espece_dao = new EspeceDao(); |
$donnees['especes'] = $espece_dao->getListeEspecesAdminParType(); |
29,11 → 33,20 |
$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(); |
$valeurs_precedentes['erreurs']; |
$donnees['espece'] = $espece_dao->getInformationsEspece($id_espece); |
$donnees['espece'] = array_merge($donnees['espece'], $valeurs_precedentes); |
$donnees['erreurs'] = $erreurs; |
41,8 → 54,90 |
$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 FORMULAIRE |
public 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); |
70,11 → 165,65 |
} |
} |
|
// METHODES DE VALIDATION DE FORMULAIRE |
public 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(trim($valeur) == '') { |
if(!is_array($valeur) && trim($valeur) == '') { |
$erreurs[$champ] .= ' Ce champ ne peut pas être vide'; |
} |
} |