Subversion Repositories Sites.obs-saisons.fr

Compare Revisions

Ignore whitespace Rev 291 → Rev 292

/trunk/applications/saisie/squelettes/listes/espece_liste_administration.tpl.html
1,5 → 1,8
<!-- ODS_SAISIE - DEBUT LISTE ESPECES ADMIN -->
<div id="saisie_liste_especes_admin">
<div id="conteneur_lien_nouvelle_espece">
<a href="<?= Liens::getUrlValidationFormulaireAjoutEspeceAdmin(); ?>" >Ajouter une nouvelle espèce</a>
</div>
<?php if (isset($especes)) : ?>
<table class="saisie_liste_especes_admin">
<tr>
13,7 → 16,7
<?php foreach ($especes as $type) : ?>
<tr><td colspan="6"><h2><?= $type['nom'] ?></h2></td>
<?php foreach ($type['especes'] as $id => $espece) : ?>
<tr <?=$espece['active'] == 0 ? 'class="espece_inactive"' : '' ?>>
<tr id="espece_<?= $id; ?>" <?=$espece['active'] == 0 ? 'class="espece_inactive"' : '' ?>>
<td>
<a href="<?= Liens::getUrlFormulaireModificationEspeceAdmin($id) ?>">
<img title="<?= Liens::getCreditImageEspece($espece['nom_scientifique']) ?>" class="illustration_espece droite" alt="editer" src="<?= Liens::getUrlImageEspece($espece['nom_scientifique']) ?>" />
/trunk/applications/saisie/squelettes/css/saisie.css
469,6 → 469,23
padding-right: 50px;
}
 
#form_ajout_espece_admin label.label_checkbox {
font-weight: normal;
}
 
#saisie_espece_admin .illustration_espece {
max-height: 180px;
max-width: 250px;
border: 1px solid grey;
}
 
.lien_annulation {
float: left;
font-size: 1.2em;
margin-left: 439px;
padding: 16px;
}
 
/* ============ Styles créés par des effets javascripts automatiques ===== */
 
.chargement {
/trunk/applications/saisie/squelettes/formulaires/espece_ajout_administration.tpl.html
New file
0,0 → 1,51
<!-- ODS_SAISIE - DEBUT MODIFICATION ESPECE ADMIN -->
<div id="saisie_espece_admin">
<h2 class="etape"> Ajout d'une espece </h2>
<br/>
<form method="post" action="<?= Liens::getUrlValidationFormulaireAjoutEspeceAdmin() ?>" id="form_ajout_espece_admin">
<div class="element_formulaire">
<label for="nom_scientifique">Type d'espèce</label>
<select id="ce_type" name="ce_type">
<?php foreach($types_especes as $id => $type) : ?>
<option id="ce_type_<?= $id; ?>" value="<?= $id; ?>" ><?= $type; ?></option>
<?php endforeach; ?>
</select>
</div>
<div class="element_formulaire">
<label for="nom_scientifique">Nom scientifique</label><br />
<input type="text" id="nom_scientifique" name="nom_scientifique" value="<?= $espece['nom_scientifique'] ?>" />
<?= isset($erreurs['nom_scientifique']) ? '<span class="erreur"> '.$erreurs['nom_scientifique'].' </span>' : '' ?>
</div>
<div class="element_formulaire">
<label for="nom_vernaculaire">Nom vernaculaire</label><br />
<input type="text" id="nom_vernaculaire" name="nom_vernaculaire" value="<?= $espece['nom_vernaculaire'] ?>" />
<?= isset($erreurs['nom_vernaculaire']) ? '<span class="erreur"> '.$erreurs['nom_vernaculaire'].' </span>' : '' ?>
</div>
<div class="element_formulaire">
<label for="description">Description</label><br />
<textarea cols="50" rows="6" id="description" name="description"><?= $espece['description'] ?></textarea>
<?= isset($erreurs['description']) ? '<span class="erreur"> '.$erreurs['description'].' </span>' : '' ?>
</div>
<div class="element_formulaire">
<label>Evènements</label><br />
<php $saut = 0; ?>
<?php foreach($evenements as $id => $evenement) : ?>
<label class="label_checkbox" for="ce_evenement_<?= $id; ?>"><?= $evenement; ?></label>
<input type="checkbox" id="ce_evenement_<?= $id; ?>" name="ce_evenements[]" value="<?= $id; ?>" />
<?php if($saut != 0) { echo '<br />'; $saut = 0; } else { $saut = 1; } ?>
<?php endforeach; ?>
<?= isset($erreurs['ce_evenements']) ? '<span class="erreur"> '.$erreurs['ce_evenements'].' </span>' : '' ?>
</div>
<div class="element_formulaire">
<label for="espece_active">Espèce active</label>
<input type="checkbox" id="espece_active" name="espece_active" <?= $espece['active'] == 1 ? 'checked="checked"' : '' ?> />
</div>
<div class="element_formulaire">
<label for="espece_ecole">Espèce école</label>
<input type="checkbox" id="espece_ecole" name="espece_ecole" <?= $espece['ecole'] == 1 ? 'checked="checked"' : '' ?> />
</div>
<a class="lien_annulation" href="<?= Liens::getUrlAdministrationEspeces() ?>">Annuler</a>
<input class="droite gros_bouton_validation" type="submit" value="Valider" />
</form>
</div>
<!-- ODS_SAISIE - FIN MODIFICATION ESPECE ADMIN -->
/trunk/applications/saisie/squelettes/formulaires/espece_ajout_image_administration.tpl.html
New file
0,0 → 1,25
<!-- ODS_SAISIE - DEBUT MODIFICATION ESPECE ADMIN -->
<div id="saisie_espece_admin">
<h2 class="etape"> Ajout ou modification d'une image d'espece </h2>
<img title="<?= Liens::getCreditImageEspece($espece['nom_scientifique']) ?>" class="illustration_espece droite" alt="image de l'espece" class="droite" src="<?= Liens::getUrlImageEspece($espece['nom_scientifique'], 'M') ?>" />
<br/>
<form enctype="multipart/form-data" method="post" action="<?= Liens::getUrlValidationFormulaireAjoutImageEspeceAdmin() ?>" id="form_ajout_image_espece_admin">
<div class="element_formulaire">
<label for="image_espece">Choisissez une image (format .jpg, max <?= round(Config::get('max_taille_fichiers')/(1024*1024)) ?> mo)</label><br />
<input type="file" id="image_espece" name="image_espece" />
<?= isset($erreurs['image_espece']) ? '<span class="erreur"> '.$erreurs['image_espece'].' </span>' : '' ?>
</div>
<div class="element_formulaire">
<label for="credits">Crédits</label><br />
<textarea cols="40" rows="6" id="credits" name="credits"><?= $espece['credits'] ?></textarea><br />
<?= isset($erreurs['credits']) ? '<span class="erreur"> '.$erreurs['credits'].' </span>' : '' ?>
</div>
<input type="hidden" name="MAX_FILE_SIZE" value="<?= Config::get('max_taille_fichiers') ?>">
<input type="hidden" name="nom_fichier" value="<?= $espece['nom_sci_normalise'] ?>">
<input type="hidden" name="id_espece" value="<?= $espece['id_espece']; ?>">
<a class="lien_annulation" href="<?= Liens::getUrlFormulaireModificationEspeceAdmin($espece['id_espece']) ?>">Annuler</a>
<input class="droite gros_bouton_validation" type="submit" value="Valider" />
</form>
</div>
<!-- ODS_SAISIE - FIN MODIFICATION ESPECE ADMIN -->
/trunk/applications/saisie/squelettes/formulaires/espece_modification_administration.tpl.html
1,9 → 1,11
<!-- ODS_SAISIE - DEBUT MODIFICATION ESPECE ADMIN -->
<div id="saisie_espece_admin">
<h2 class="etape"> Modification de l'espece <?= $espece['nom_scientifique'] ?> </h2>
<img title="<?= Liens::getCreditImageEspece($espece['nom_scientifique']) ?>" class="illustration_espece droite" alt="image de l'espece" class="droite" src="<?= Liens::getUrlImageEspece($espece['nom_scientifique']) ?>" />
<a href="<?= Liens::getUrlFormulaireAjoutImageEspeceAdmin($espece['id_espece']);?>" title="Cliquez pour ajouter ou modifier l'image associée à l'espèce" >
<img title="<?= Liens::getCreditImageEspece($espece['nom_scientifique']); ?>" class="illustration_espece droite" alt="image de l'espece" class="droite" src="<?= Liens::getUrlImageEspece($espece['nom_scientifique'], 'M') ?>" />
</a>
<br/>
<form method="post" action="<?= Liens::getUrlValidationFormulaireModificationEspeceAdmin($espece['id_espece']) ?>" id="form_modification_espece_admin">
<form method="post" action="<?= Liens::getUrlValidationFormulaireModificationEspeceAdmin($espece['id_espece'])."#espece_".$espece['id_espece']; ?>" id="form_modification_espece_admin">
<div class="element_formulaire">
<label for="nom_scientifique">Nom scientifique</label><br />
<input type="text" id="nom_scientifique" name="nom_scientifique" value="<?= $espece['nom_scientifique'] ?>" />
16,7 → 18,7
</div>
<div class="element_formulaire">
<label for="description">Description</label><br />
<textarea cols="60" rows="6" id="description" name="description"><?= $espece['description'] ?></textarea>
<textarea cols="50" rows="6" id="description" name="description"><?= $espece['description'] ?></textarea>
<?= isset($erreurs['description']) ? '<span class="erreur"> '.$erreurs['description'].' </span>' : '' ?>
</div>
<div class="element_formulaire">
24,6 → 26,7
<input type="checkbox" id="espece_active" name="espece_active" <?= $espece['active'] == 1 ? 'checked="checked"' : '' ?> />
</div>
<input type="hidden" name="id_espece" id="id_espece" value="<?= $espece['id_espece'] ?>" />
<a class="lien_annulation" href="<?= Liens::getUrlAdministrationEspeces() ?>">Annuler</a>
<input class="droite gros_bouton_validation" type="submit" value="Valider" />
</form>
</div>
/trunk/applications/saisie/controleurs/Administration.php
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,15 → 165,69
}
}
// 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';
}
}
 
if(!empty($erreurs)) {
return $erreurs;
}
/trunk/applications/saisie/controleurs/Liens.php
167,7 → 167,7
return self::construireUrl($params);
}
public static function getUrlFormulaireSuppressionStation() {
public static function getUrlFormulaireSafficherFormulaireModificationEspeceAdminuppressionStation() {
$params = array(
'module' => 'Station',
337,6 → 337,25
return self::construireUrl($params);
}
public static function getUrlFormulaireAjoutEspeceAdmin() {
$params = array(
'module' => 'Administration',
'action' => 'afficherFormulaireAjoutEspeceAdmin',
'id_espece' => $id_espece
);
return self::construireUrl($params);
}
public static function getUrlValidationFormulaireAjoutEspeceAdmin() {
$params = array(
'module' => 'Administration',
'action' => 'validerFormulaireAjoutEspeceAdmin',
'id_espece' => $id_espece
);
return self::construireUrl($params);
}
public static function getUrlFormulaireModificationEspeceAdmin($id_espece) {
$params = array(
356,6 → 375,24
return self::construireUrl($params);
}
public static function getUrlFormulaireAjoutImageEspeceAdmin($id_espece) {
$params = array(
'module' => 'Administration',
'action' => 'afficherFormulaireAjoutImageEspeceAdmin',
'id_espece' => $id_espece
);
return self::construireUrl($params);
}
public static function getUrlValidationFormulaireAjoutImageEspeceAdmin($id_espece) {
$params = array(
'module' => 'Administration',
'action' => 'validerFormulaireAjoutImageEspeceAdmin',
'id_espece' => $id_espece
);
return self::construireUrl($params);
}
public static function renvoyerStylesInclus() {
$styles = '';