Subversion Repositories Sites.obs-saisons.fr

Compare Revisions

Ignore whitespace Rev 323 → Rev 324

/trunk/applications/saisie/bibliotheque/dao/IndividuDao.php
13,11 → 13,11
*
*/
class IndividuDao extends Dao {
 
const SERVICE_INDIVIDU = 'OdsIndividu';
const METHODE_INDIVIDUS_STATION = 'IndividusPourStation';
const METHODE_INDIVIDUS_STATION_ESPECE = 'IndividusPourStationPourEspece';
 
/**
* Retourne l'ensemble des informations d'un individu.
*
25,24 → 25,24
* @return array un tableau contenant les informations sur les individus de cette station.
*/
public function getListeIndividusPourStation($id_station) {
 
$url = $this->url_jrest.self::SERVICE_INDIVIDU.'/'.self::METHODE_INDIVIDUS_STATION.'/'.$id_station;
$json = $this->envoyerRequeteConsultation($url);
$donnees = json_decode($json, true);
$donnees = json_decode($json, true);
return $donnees;
}
 
public function getListeIndividusPourStationPourEspece($id_station, $id_espece) {
 
$url = $this->url_jrest.self::SERVICE_INDIVIDU.'/'.self::METHODE_INDIVIDUS_STATION_ESPECE.'/'.$id_station.'/'.$id_espece;
$json = $this->envoyerRequeteConsultation($url);
$donnees = json_decode($json, true);
$donnees = json_decode($json, true);
 
return $donnees;
}
 
public function getInformationsIndividu($id_individu) {
 
if (is_numeric($id_individu)) {
$url = $this->url_jrest.self::SERVICE_INDIVIDU."/$id_individu";
$json = $this->envoyerRequeteConsultation($url);
50,55 → 50,55
return $donnees;
}
}
 
public function ajouterIndividu($valeurs_individu_verifiees) {
 
$donnees = $valeurs_individu_verifiees;
 
$url = $this->url_jrest.self::SERVICE_INDIVIDU."/";
$json = $this->envoyerRequeteAjout($url, $donnees);
$donnees = json_decode($json, true);
$donnees_retour = json_decode($json, true);
 
return $donnees_retour;
}
 
public function modifierIndividu($id_individu, $valeurs_individu_verifiees) {
 
$donnees = $valeurs_individu_verifiees;
if (is_numeric($id_individu)) {
$url = $this->url_jrest.self::SERVICE_INDIVIDU."/$id_individu";
$json = $this->envoyerRequeteModif($url, $donnees);
$donnees = json_decode($json, true);
if($donnees_retour['reponse'] == 'OK') {
return true;
}
}
 
if (is_numeric($id_individu)) {
$url = $this->url_jrest.self::SERVICE_INDIVIDU."/$id_individu";
 
$json = $this->envoyerRequeteModif($url, $donnees);
$donnees = json_decode($json, true);
 
if($donnees_retour['reponse'] == 'OK') {
return true;
}
}
 
return false;
}
 
public function supprimerIndividu($id_individu) {
 
$donnees = $valeurs_individu_verifiees;
 
if (is_numeric($id_individu)) {
$url = $this->url_jrest.self::SERVICE_INDIVIDU."/".AppControleur::getIdUtilisateur()."/".$id_individu;
$json = $this->envoyerRequeteSuppression($url, $donnees);
$donnees = json_decode($json, true);
 
$donnees_retour = json_decode($json, true);
 
if($donnees_retour['reponse'] == 'OK') {
return true;
}
 
}
 
return false;
}
}
?>
?>
/trunk/applications/saisie/squelettes/js/saisie.js
63,7 → 63,7
initialiserOnglets();
});
 
function agrandirZoneCLicBoutonsRadios() {
function agrandirZoneClicBoutonsRadios() {
 
$('.formulaire_informations_espece_mini').addClass("element_cliquable");
 
81,7 → 81,7
}
 
$('#form_saisie_espece').ready(function() {
agrandirZoneCLicBoutonsRadios();
agrandirZoneClicBoutonsRadios();
});
 
 
97,11 → 97,6
************************************************************************************************
**/
 
htmlEnCours = '';
elementEnCours = null;
ancienneValeurEnCours = null;
id_formulaire = null;
 
function initialiserLignesCliquables() {
 
$('.conteneur_element_modifier').hide();
109,7 → 104,10
$(".date_observation_individu").live("click", function(e) {
e.preventDefault();
 
if($(e.target).hasClass('conteneur_supprimer_observation') || $(e.target).hasClass('supprimer_observation')) {
var est_absence_observation = $(e.target).parents('[data-absence-observation="1"]').length > 0;
if($(e.target).hasClass('conteneur_supprimer_observation') ||
$(e.target).hasClass('supprimer_observation') ||
est_absence_observation) {
return;
}
 
126,13 → 124,35
 
$(".date_observation_individu .conteneur_supprimer_observation").live("click", function(e) {
e.preventDefault();
if(window.confirm('Êtes-vous sûr de vouloir supprimer cette observation ?')) {
if(window.confirm('Êtes-vous sûr.e de vouloir supprimer cette observation ?')) {
// les obs ne sont jamais vraiment supprimées
// mais seulement remplacées par des dates au format 00/00/yyyy
envoyerRequeteAjaxSaisieObservation('', $(this).parent('.date_observation_individu'));
}
 
return false;
});
 
$(".date_observation_individu .absence_observation").live("click", function(e) {
e.preventDefault();
var avertissement_absence_evenement = 'Attention ! Vous êtes sur le point de signaler que ce stade n\'a pas eu lieu dans l\'année. '+"\n"+
'C\'est-à-dire que vous êtes certain.e de ne pas l\'avoir raté. '+"\n"+
'Êtes-vous sûr.e ?';
if(window.confirm(avertissement_absence_evenement)) {
$(this).parent('.date_observation_individu').data('absence-observation', '1');
var date_absence_evenement = '';
var dateEnCours = new Date();
if(getAnneeEnCoursDeConsultation() == dateEnCours.getFullYear()) {
date_absence_evenement = dateEnCours.getDate()+'/'+dateEnCours.getMonth()+'/'+dateEnCours.getFullYear();
} else {
date_absence_evenement = '01/01/'+dateEnCours.getFullYear();
}
envoyerRequeteAjaxSaisieObservation(date_absence_evenement, $(this).parent('.date_observation_individu'));
}
 
return false;
});
 
// pour fermer le datepicker sur esc
$(document).keyup(function(e) {
if (e.keyCode === 27) {
205,6 → 225,10
"annee_en_cours": anneeEnCours
};
 
if(!!$obs.data('absence-observation')) {
donnees_obs.absence_observation = $obs.data('absence-observation');
}
 
if(!!$obs.data('id-observation')) {
donnees_obs.id_observation = $obs.data('id-observation');
}
230,10 → 254,16
var $conteneurAjout = $('#'+id_conteneur_ajout).clone();
}
 
if(absenceStadePourIndividuEtAnneeEstSignalee($obs.data('id-individu'), $obs.data('id-stade'))) {
$obs.find('.date-observation').text('Absent');
return;
}
 
var donnees_obs = formaterDonneesObservationPourEnvoi(dateStr, $obs);
donnees_obs['id_participant'] = 3;
$.post(url_ajax, donnees_obs, function(obj_retour) {
 
if(obj_retour.data.erreurs) {
if(!!obj_retour.data.erreurs) {
var message = 'Une ou plusieurs erreurs se sont produites : '+"\n";
for (var key in obj_retour.data.erreurs) {
if (obj_retour.data.erreurs.hasOwnProperty(key))
248,23 → 278,39
// les obs ne sont jamais vraiment supprimées
// mais seulement remplacées par des dates au format 00/00/yyyy
if(estUneDateSuppressionObs(dateStr)) {
// si l'on a supprimé le signalement de l'absence d'un stade, alors on peut de nouveau saisir des
// observations pour ce stade (le signalement de l'absence d'un stade pour une année est une observation)
if(estUneAbsenceObservation($obs)) {
afficherOuCacherConteneurAjout($obs.data('id-individu'), $obs.data('id-stade-observation'), true);
afficherOuCacherBoutonSignalerAbsenceObservation($obs.data('id-individu'), $obs.data('id-stade-observation'), true);
}
 
$obs.remove();
delete $obs;
 
// s'il l'on vient de supprimer la dernière obs d'une évènement pour un individu on peut également à nouveau
// saisir des observations pour celui-ci
if(getDatesSaisiesPourStadeEtIndividu($obs.data('id-individu'), $obs.data('id-stade-observation')).length == 0) {
afficherOuCacherBoutonSignalerAbsenceObservation($obs.data('id-individu'), $obs.data('id-stade-observation'), true);
}
 
return;
}
 
$obs.find('.date_observation').text(dateStr);
$obs.data('date-observation', dateStr);
if(!!obj_retour.data.id_observation) {
donnees_obs['id_observation'] = obj_retour.data.id_observation;
}
 
if(!est_obs_existante) {
$obs.removeClass('ajouter_observation');
$obs.attr('title', 'Cliquez pour modifier la date de cette observation')
$obs.data('id-observation', obj_retour.data.id_observation);
 
var id_conteneur_observation = 'individu_'+donnees_obs['id_individu']+'_evenement_'+donnees_obs['id_evenement']+'_observation_'+obj_retour.data.id_observation;
$obs.attr('id', id_conteneur_observation);
 
$obs.after($conteneurAjout);
// sl'on vient de signaler que la stade n'a pas du tout eu lieu dans l'année
if(estUneAbsenceObservation($obs)) {
// alors on affiche une observation spéciale qui indique que le stade est absent
// et qui bloque la saisie d'autres observations de ce stade pour cet individu et cette année
afficherAbsenceObservationPourIndividuEtAnnee($obs, $conteneurAjout, donnees_obs);
} else {
afficherObservation(dateStr, $obs, $conteneurAjout, donnees_obs, est_obs_existante);
// à partir du moment où l'on a au moins une observation pour un stade et un individu donné
// on ne peut plus signaler que l'évènement n'a pas eu lieu cette année
afficherOuCacherBoutonSignalerAbsenceObservation($obs.data('id-individu'), $obs.data('id-stade-observation'), false);
}
 
$('.element_clique').removeClass('element_clique');
273,6 → 319,47
});
}
 
function afficherObservation(dateStr, $obs, $conteneurAjout, donnees_obs, est_obs_existante) {
$obs.find('.date_observation').text(dateStr);
$obs.data('date-observation', dateStr);
 
if(!est_obs_existante) {
$obs.removeClass('ajouter_observation');
$obs.attr('title', 'Cliquez pour modifier la date de cette observation')
$obs.data('id-observation', donnees_obs['id_observation']);
 
var id_conteneur_observation = 'individu_'+donnees_obs['id_individu']+'_evenement_'+donnees_obs['id_evenement']+'_observation_'+donnees_obs['id_observation'];
$obs.attr('id', id_conteneur_observation);
 
$obs.after($conteneurAjout);
}
}
 
function afficherAbsenceObservationPourIndividuEtAnnee($obs, $conteneurAjout, donnees_obs) {
afficherObservation('Absent', $obs, $conteneurAjout, donnees_obs, false);
$obs.attr('title', 'Vous avez indiqué que ce stade n\'a pas été observé pour cette année');
$obs.data('absence-observation', '1');
$obs.attr('data-absence-observation', '1');
// on cache le conteneur d'ajout car une fois l'absence d'un stade signalée pour une année
// et un individu, il est illogique de vouloir signaler des observations de ce stade
afficherOuCacherConteneurAjout(donnees_obs['id_individu'], donnees_obs['id_evenement'], false);
}
 
function afficherOuCacherConteneurAjout(id_individu, id_evenement, afficher) {
var $conteneurAjout = $('#ajouter_observation_individu_'+id_individu+'_evenement_'+id_evenement);
$conteneurAjout.toggleClass('hide', !afficher);
}
 
function afficherOuCacherBoutonSignalerAbsenceObservation(id_individu, id_evenement, afficher) {
var $conteneurSignalementAbsenceObs = $('#ajouter_observation_individu_'+id_individu+'_evenement_'+id_evenement+' .absence_observation');
console.log($conteneurSignalementAbsenceObs);
$conteneurSignalementAbsenceObs.toggleClass('hide', !afficher);
}
 
function estUneAbsenceObservation($obs) {
return $obs.data('absence-observation') == 1;
}
 
function estUneDateSuppressionObs(dateStr) {
var date_vide_pattern = /^00\/00\/\d{4}$/;
return dateStr == '' || date_vide_pattern.test(dateStr);
301,6 → 388,14
return d && (d.getMonth() + 1) == bits[1];
}
 
function absenceStadePourIndividuEtAnneeEstSignalee(id_individu, id_stade) {
var selecteur_data = '[data-id-individu="'+id_individu+'"]'+
'[data-id-stade-observation="'+id_stade+'"]'+
'[data-absence-observation="1"]';
 
return $('.date_observation_individu'+selecteur_data).length >= 1;
}
 
function getDatesSaisiesPourStadeEtIndividu(id_individu, id_stade) {
var selecteur_data = '[data-id-individu="'+id_individu+'"]'+
'[data-id-stade-observation="'+id_stade+'"]';
678,7 → 773,7
 
function initialiserLiensSuppression() {
$('.lien_suppression').click(function() {
return window.confirm('Êtes vous sur de vouloir supprimer ?');
return window.confirm('Êtes vous sûr.e de vouloir supprimer ?');
});
}
 
/trunk/applications/saisie/squelettes/fiches/individu_fiche.tpl.html
1,6 → 1,9
<!-- ODS_SAISIE - DEBUT FICHE INDIVIDU -->
<div id="fiche_individu">
<h2 class="titre_fiche"> <?= $infos_individu['nom'] ?></h2>
<h2 class="titre_fiche"><?= $infos_individu['nom'] ?></h2>
<?php if(!empty($infos_individu['commentaire'])) { ?>
<p class="commentaire_individu">&laquo; <?= $infos_individu['commentaire'] ?> &raquo;</p>
<?php } ?>
<hr class="separation_section" />
 
<h3 class="titre_section_fiche"> Espèce </h3>
/trunk/applications/saisie/squelettes/listes/evenement_liste.tpl.html
2,8 → 2,9
<div>
<h2> Observations pour l'année <?= $annee ?> </h2>
 
<p class="cadre_information">Pour ajouter ou modifier une observation, cliquez sur la case correspondante et sélectionnez une date dans le calendrier,
(vous pouvez annuler l'édition en appuyant sur la touche échap). Pour la supprimer cliquez sur la croix à droite de la date.
<p class="cadre_information">Pour ajouter ou modifier une observation, cliquez sur la case correspondante et sélectionnez une date dans le calendrier
(vous pouvez annuler l'édition en appuyant sur la touche échap). <br />
Pour la supprimer, cliquez sur la croix à droite de la date.
</p>
 
<ul class="liste_annees_observations">
48,30 → 49,52
</a>
</td>
<?php foreach($evenements as $nom_evenement => $evenement) : ?>
<?php foreach($evenement['stades'] as $id_stade => $stade) : ?>
<td class="conteneur_date_observation" title="Cliquez pour modifier la date de cette observation">
<?php foreach($evenement['stades'] as $id_stade => $stade) : ?>
<td class="conteneur_date_observation">
<?php $stade_absent_cette_annee = false; ?>
<?php if (!empty($individu['observations'][$annee][$nom_evenement][$stade])) { ?>
<?php foreach($individu['observations'][$annee][$nom_evenement][$stade] as $id_observation => $date_observation) : ?>
<div class="date_observation_individu element_cliquable"
data-id-stade-observation="<?=$id_stade?>"
data-id-observation="<?=$id_observation?>"
data-id-individu="<?=$individu['id_individu']?>"
data-date-observation="<?=$date_observation?>"
id="individu_<?=$individu['id_individu']?>_evenement_<?=$id_stade?>_observation_<?=$id_observation?>">
<span class="date_observation"><?= $date_observation ?></span>
<span class="datepicker_container"></span>
<div class="conteneur_supprimer_observation">
<span title="Cliquez pour supprimer cette observation" class="icone supprimer_observation">&nbsp;</span>
<?php foreach($individu['observations'][$annee][$nom_evenement][$stade] as $id_observation => $observation) : ?>
<?php if($observation['absence_evenement'] == 0) { ?>
<div class="date_observation_individu element_cliquable"
title="Cliquez pour modifier la date de cette observation"
data-id-stade-observation="<?=$id_stade?>"
data-id-observation="<?=$id_observation?>"
data-id-individu="<?=$individu['id_individu']?>"
data-date-observation="<?= $observation['date'] ?>"
id="individu_<?=$individu['id_individu']?>_evenement_<?=$id_stade?>_observation_<?=$id_observation?>">
<span class="date_observation"><?= $observation['date'] ?></span>
<span class="datepicker_container"></span>
<div class="conteneur_supprimer_observation">
<span title="Cliquez pour supprimer cette observation" class="icone supprimer_observation">&nbsp;</span>
</div>
</div>
</div>
<?php } else { ?>
<?php $stade_absent_cette_annee = true; ?>
<div class="date_observation_individu element_cliquable"
title="Vous avez indiqué que ce stade n'a pas été observé pour cette année"
data-id-stade-observation="<?=$id_stade?>"
data-id-observation="<?=$id_observation?>"
data-id-individu="<?=$individu['id_individu']?>"
data-date-observation="<?= $observation['date'] ?>"
data-absence-observation="1"
id="individu_<?=$individu['id_individu']?>_evenement_<?=$id_stade?>_observation_<?=$id_observation?>">
<span class="date_observation">Absent</span>
<div class="conteneur_supprimer_observation">
<span title="Cliquez pour supprimer cette observation" class="icone supprimer_observation">&nbsp;</span>
</div>
</div>
<?php } ?>
<?php endforeach; ?>
<?php } ?>
<div class="ajouter_observation date_observation_individu element_cliquable"
<div class="ajouter_observation date_observation_individu element_cliquable <?= $stade_absent_cette_annee ? 'hide' : '' ?>"
data-id-stade-observation="<?=$id_stade?>"
data-id-individu="<?=$individu['id_individu']?>"
title="Cliquez pour ajouter une nouvelle observation de ce stade"
id="ajouter_observation_individu_<?=$individu['id_individu']?>_evenement_<?=$id_stade?>">
<span class="icone date_observation">&nbsp;</span>
<?php $pas_encore_stade_pour_annee = empty($individu['observations'][$annee][$nom_evenement][$stade]); ?>
<span title="Cliquez pour signaler l'absence de cet évènement pour cette année"
class="icone absence_observation <?= $pas_encore_stade_pour_annee ? '' : 'hide' ?>">&nbsp;</span>
<span class="datepicker_container"></span>
<div class="conteneur_supprimer_observation">
<span title="Cliquez pour supprimer cette observation" class="icone supprimer_observation">&nbsp;</span>
/trunk/applications/saisie/squelettes/css/saisie.css
359,6 → 359,17
width: 20px;
}
 
.ajouter_observation .absence_observation {
background: url("../images/absence.png") no-repeat center center transparent;
width: 20px;
}
 
.ajouter_observation.hide,
.ajouter_observation .conteneur_supprimer_observation,
.ajouter_observation .absence_observation.hide {
display: none;
}
 
.conteneur_supprimer_observation {
position: absolute;
right: 0px;
398,6 → 409,12
position: relative;
}
 
.date_observation:not(.icone) {
padding-left: 20px;
padding-right: 20px;
}
 
 
.date_observation_individu .ui-datepicker {
position: absolute;
top: 100%;
419,7 → 436,19
margin-top: 31px;
}
 
#fiche_individu .commentaire_individu {
font-style: italic;
white-space: pre;
}
 
textarea[name="individu_commentaire"] {
width: 550px;
min-height: 160px;
border-radius: 5px;
height: 75px;
border: 1px solid #ACACAC;
}
 
/* =========================== Tableaux d'évenements ============================ */
 
#saisie_liste_evenements, #saisie_modif_evenements {
/trunk/applications/saisie/squelettes/formulaires/individu_modification.tpl.html
11,7 → 11,19
<br />
<?= isset($erreurs['individu_nom']) ? '<span class="erreur"> '.$erreurs['individu_nom'].' </span>' : '' ?>
<br />
 
<div class="element_formulaire">
<label for="individu_commentaire">Commentaire :</label>
<div>
<textarea placeholder="Optionnel, 100 caractères max." maxlength="1000"
<?= isset($erreurs['individu_commentaire']) ? 'class="erreur"' : '' ?>
name="individu_commentaire" id="individu_commentaire" ><?= $infos_individu['commentaire']; ?></textarea>
</div>
</div>
<br />
<?= isset($erreurs['individu_commentaire']) ? '<span class="erreur"> '.$erreurs['individu_commentaire'].' </span>' : '' ?>
<br />
 
<h3 class="titre_section_fiche"> Espèce </h3>
<div class="informations_espece">
<img title="<?= Liens::getCreditImageEspece($espece['nom_scientifique']) ?>" alt="image de l'espece" class="droite" height="120" src="<?= Liens::getUrlImageEspece($informations_espece['nom_scientifique'],'M') ?>" />
22,7 → 34,7
<input type="hidden" id="id_espece" name="id_espece" value="<?= $id_espece; ?>" />
<input type="hidden" id="id_station" name="id_station" value="<?= $id_station; ?>" />
<input type="hidden" id="id_individu" name="id_individu" value="<?= $infos_individu['id_individu']; ?>" />
<input class="droite gros_bouton_validation" type="submit" value="Valider" />
<input class="droite gros_bouton_validation" type="submit" value="Valider" />
</form>
</div>
<!-- ODS_SAISIE - FIN MODIFICATION INDIVIDU -->
<!-- ODS_SAISIE - FIN MODIFICATION INDIVIDU -->
/trunk/applications/saisie/squelettes/formulaires/individu_saisie.tpl.html
11,18 → 11,30
<br />
<?= isset($erreurs['individu_nom']) ? '<span class="erreur"> '.$erreurs['individu_nom'].' </span>' : '' ?>
<br />
 
<div class="element_formulaire">
<label for="individu_commentaire">Commentaire :</label>
<div>
<textarea placeholder="Optionnel, 1000 caractères max." maxlength="1000"
<?= isset($erreurs['individu_commentaire']) ? 'class="erreur"' : '' ?>
name="individu_commentaire" id="individu_commentaire" ></textarea>
</div>
</div>
<br />
<?= isset($erreurs['individu_commentaire']) ? '<span class="erreur"> '.$erreurs['individu_commentaire'].' </span>' : '' ?>
<br />
 
<h3 class="titre_section_fiche"> Espèce </h3>
<div class="informations_espece">
<img title="<?= Liens::getCreditImageEspece($informations_espece['nom_scientifique']) ?>" alt="image de l'espece" class="droite" height="120px" src="<?= Liens::getUrlImageEspece($informations_espece['nom_scientifique'],'M') ?>" />
<span class="intitule_fiche"> <?= $informations_espece['nom_vernaculaire'] ?> </span>
<span class="valeur_fiche"> (<?= $informations_espece['nom_scientifique'] ?>) </span>
</div>
<div><a class="lien_voir_fiche_espece" href="<?= Liens::getUrlFicheEspece($informations_espece['nom_scientifique']); ?>"> Voir la fiche de cette espece </a></div>
<p class="intitule_fiche description_espece" > <?= $informations_espece['description'] ?></p>
<input type="hidden" id="espece" name="espece" value="<?= $id_espece; ?>" />
<input type="hidden" id="station" name="station" value="<?= $id_station; ?>" />
<input class="droite gros_bouton_validation" type="submit" value="Valider" />
<span class="valeur_fiche"> (<?= $informations_espece['nom_scientifique'] ?>) </span>
</div>
<div><a class="lien_voir_fiche_espece" href="<?= Liens::getUrlFicheEspece($informations_espece['nom_scientifique']); ?>"> Voir la fiche de cette espece </a></div>
<p class="intitule_fiche description_espece" > <?= $informations_espece['description'] ?></p>
<input type="hidden" id="espece" name="espece" value="<?= $id_espece; ?>" />
<input type="hidden" id="station" name="station" value="<?= $id_station; ?>" />
<input class="droite gros_bouton_validation" type="submit" value="Valider" />
</form>
</div>
<!-- ODS_SAISIE - FIN SAISIE INDIVIDU -->
<!-- ODS_SAISIE - FIN SAISIE INDIVIDU -->
/trunk/applications/saisie/controleurs/Liens.php
15,56 → 15,56
class Liens extends aControleur {
 
public static function construireUrl($tableau_params, $conserver_parametres_actuels = false) {
 
if ($conserver_parametres_actuels) {
return '?'.http_build_query($tableau_params + $_GET);
}
return '?'.http_build_query($tableau_params);
}
 
public static function getUrlSquelette() {
$url_base = self::getUrlBaseComplete();
 
$url_base = self::getUrlBaseComplete();
$url_base_squelette = $url_base.Config::get('dossier_squelettes').DS;
 
return $url_base_squelette;
}
 
public static function getUrlStyle() {
$url_base_style = self::getUrlSquelette().'css'.DS;
 
return $url_base_style;
}
 
public static function getUrlScript() {
$url_base_script = self::getUrlSquelette().'js'.DS;
 
return $url_base_script;
}
 
public static function getUrlImage() {
$url_base_image = self::getUrlSquelette().'images'.DS;
 
return $url_base_image;
}
 
public static function getUrlImageEspece($nom_sci, $format = 'CXS') {
 
$nom_sci_formate = strtolower(str_replace(' ', '_', $nom_sci));
 
if(!file_exists(Config::get('dossier_images_especes').$format.'/'.$nom_sci_formate.'.jpg')) {
return Config::get('url_images_especes').$format.'/'.'vide.jpg';
}
 
return Config::get('url_images_especes').$format.'/'.$nom_sci_formate.'.jpg';
}
 
public static function getUrlFicheEspece($nom_sci) {
 
$nom_sci_formate = strtolower(str_replace(' ', '_', $nom_sci));
return Config::get('url_fiches_especes').$nom_sci_formate.'/';
}
 
public static function getUrlAdministrationEspeces() {
$params = array(
'module' => 'Administration',
72,11 → 72,11
);
return self::construireUrl($params);
}
 
public static function getCreditImageEspece($nom_sci) {
 
$nom_sci_formate = strtolower(str_replace(' ', '_', $nom_sci));
 
if(!file_exists(Config::get('dossier_images_especes').'/'.$nom_sci_formate.'.txt')) {
$credit = '';
} else {
83,56 → 83,56
$credit = file_get_contents(Config::get('dossier_images_especes').'/'.$nom_sci_formate.'.txt');
$credit = htmlentities($credit);
}
 
if(trim($credit) != '') {
$credit = 'Crédits : '.$credit;
}
 
return $credit;
}
 
public static function getUrlBaseReecrite() {
 
if(isset($_SERVER['REDIRECT_URL']) && $_SERVER['REDIRECT_URL'] != '') {
 
}
 
$base_url_reecrite = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REDIRECT_URL'];
$base_url_reecrite .= '/';
 
return $base_url_reecrite;
}
 
public static function getUrlBase() {
 
$base_vrai_chemin = str_replace(realpath($_SERVER['DOCUMENT_ROOT']),'',realpath(Application::getChemin()));
$base_vrai_chemin .= '/';
 
return $base_vrai_chemin;
}
 
public static function getUrlBaseComplete() {
return 'http://'.$_SERVER['SERVER_NAME'].str_replace(realpath($_SERVER['DOCUMENT_ROOT']),'',realpath(Application::getChemin())).'/';
}
public static function getUrlDefaut() {
 
public static function getUrlDefaut() {
 
$params = array();
return self::construireUrl($params);
return self::construireUrl($params);
}
public static function getUrlConsultationFicheStation($id_station) {
 
public static function getUrlConsultationFicheStation($id_station) {
 
$params = array(
'module' => 'Station',
'action' => 'afficherInformationsStation',
'id_station' => $id_station
);
return self::construireUrl($params);
return self::construireUrl($params);
}
 
public static function getUrlFormulaireSaisieStation() {
 
$params = array(
'module' => 'Station',
'action' => 'afficherFormulaireSaisieStation',
140,7 → 140,7
);
return self::construireUrl($params);
}
 
public static function getUrlValidationFormulaireSaisieStation() {
$params = array(
'module' => 'Station',
148,7 → 148,7
);
return self::construireUrl($params);
}
 
public static function getUrlFormulaireModificationStation($id_station) {
$params = array(
'module' => 'Station',
157,7 → 157,7
);
return self::construireUrl($params);
}
 
public static function getUrlValidationFormulaireModificationStation($id_station) {
$params = array(
'module' => 'Station',
166,9 → 166,9
);
return self::construireUrl($params);
}
 
public static function getUrlFormulaireSuppressionStation() {
 
$params = array(
'module' => 'Station',
'action' => 'supprimerStation'
175,33 → 175,33
);
return self::construireUrl($params);
}
public static function getUrlFormulaireAjoutEspece($id_station) {
 
public static function getUrlFormulaireAjoutEspece($id_station) {
 
$params = array(
'module' => 'Espece',
'action' => 'afficherFormulaireSaisieEspece',
'id_station' => $id_station,
'id_espece' => 'saisie'
);
return self::construireUrl($params);
);
 
return self::construireUrl($params);
}
public static function getUrlValidationFormulaireSaisieEspece($id_station) {
 
public static function getUrlValidationFormulaireSaisieEspece($id_station) {
 
$params = array(
'module' => 'Espece',
'action' => 'validerFormulaireSaisieEspece',
'id_station' => $id_station,
'id_espece' => 'saisie'
);
return self::construireUrl($params);
);
 
return self::construireUrl($params);
}
public static function getUrlConsultationFicheIndividu($id_station, $id_espece, $id_individu) {
 
public static function getUrlConsultationFicheIndividu($id_station, $id_espece, $id_individu) {
 
$params = array(
'module' => 'Individu',
'action' => 'afficherInformationsIndividu',
210,11 → 210,11
'id_individu' => $id_individu
);
return self::construireUrl($params);
 
}
public static function getUrlFormulaireSaisieIndividu($id_station, $id_espece) {
 
public static function getUrlFormulaireSaisieIndividu($id_station, $id_espece) {
 
$params = array(
'module' => 'Individu',
'action' => 'afficherFormulaireSaisieIndividu',
221,11 → 221,11
'id_station' => $id_station,
'id_espece' => $id_espece
);
return self::construireUrl($params);
return self::construireUrl($params);
}
public static function getUrlValidationFormulaireSaisieIndividu($id_station, $id_espece) {
 
public static function getUrlValidationFormulaireSaisieIndividu($id_station, $id_espece) {
 
$params = array(
'module' => 'Individu',
'action' => 'validerFormulaireSaisieIndividu',
232,11 → 232,11
'id_station' => $id_station,
'id_espece' => $id_espece
);
return self::construireUrl($params);
return self::construireUrl($params);
}
public static function getUrlFormulaireModificationIndividu($id_station, $id_espece, $id_individu) {
 
public static function getUrlFormulaireModificationIndividu($id_station, $id_espece, $id_individu) {
 
$params = array(
'module' => 'Individu',
'action' => 'afficherFormulaireModificationIndividu',
244,11 → 244,11
'id_espece' => $id_espece,
'id_individu' => $id_individu
);
return self::construireUrl($params);
return self::construireUrl($params);
}
public static function getUrlValidationFormulaireModificationIndividu($id_station, $id_espece, $id_individu) {
 
public static function getUrlValidationFormulaireModificationIndividu($id_station, $id_espece, $id_individu) {
 
$params = array(
'module' => 'Individu',
'action' => 'validerFormulaireModificationIndividu',
256,25 → 256,25
'id_espece' => $id_espece,
'id_individu' => $id_individu
);
return self::construireUrl($params);
return self::construireUrl($params);
}
public static function getUrlSuppressionIndividu($id_station, $id_espece, $id_individu) {
 
public static function getUrlSuppressionIndividu($id_station, $id_espece, $id_individu) {
 
$params = array(
'module' => 'Individu',
'action' => 'supprimerIndividu',
'id_station' => $id_station
);
return self::construireUrl($params);
return self::construireUrl($params);
}
public static function getUrlConsultationEspeceStation($id_station, $id_espece, $annee = null) {
 
public static function getUrlConsultationEspeceStation($id_station, $id_espece, $annee = null) {
 
if($annee == null) {
$annee = date('Y');
}
 
$params = array(
'module' => 'Individu',
'action' => 'afficherListeIndividu',
281,17 → 281,17
'id_station' => $id_station,
'id_espece' => $id_espece,
'annee' => $annee
);
return self::construireUrl($params);
);
 
return self::construireUrl($params);
}
 
public static function getUrlFormulaireModificationObservation($id_station,$id_espece, $id_individu, $annee = null) {
 
if($annee == null) {
$annee = date('Y');
}
 
$params = array(
'module' => 'Observation',
'action' => 'afficherFormulaireModificationObservation',
299,17 → 299,17
'id_espece' => $id_espece,
'id_individu' => $id_individu,
'annee' => $annee
);
return self::construireUrl($params);
);
 
return self::construireUrl($params);
}
 
public static function getUrlValidationFormulaireModificationObservation($id_station,$id_espece, $id_individu, $annee = null) {
 
if($annee == null) {
$annee = date('Y');
}
 
$params = array(
'module' => 'Observation',
'action' => 'validerFormulaireModificationObservation',
317,28 → 317,28
'id_espece' => $id_espece,
'id_individu' => $id_individu,
'annee' => $annee
);
return self::construireUrl($params);
);
 
return self::construireUrl($params);
}
 
public static function getUrlExportDonneesObservations() {
return Config::get('url_jrest').'OdsExport/FichierExportObservationCSV/';
 
return Config::get('url_jrest').'OdsExport/FichierExportObservationCSV/';
}
 
public static function getUrlExportDonneesObservationsPourUtilisateur() {
 
$params = array(
'module' => 'Export',
'action' => 'envoyerFichierCSVExportObservation'
);
return self::construireUrl($params);
);
 
return self::construireUrl($params);
}
 
public static function getUrlFormulaireAjoutEspeceAdmin() {
 
$params = array(
'module' => 'Administration',
'action' => 'afficherFormulaireAjoutEspeceAdmin',
346,7 → 346,7
);
return self::construireUrl($params);
}
 
public static function getUrlValidationFormulaireAjoutEspeceAdmin() {
$params = array(
'module' => 'Administration',
355,9 → 355,9
);
return self::construireUrl($params);
}
 
public static function getUrlFormulaireModificationEspeceAdmin($id_espece) {
 
$params = array(
'module' => 'Administration',
'action' => 'afficherFormulaireModificationEspeceAdmin',
365,8 → 365,8
);
return self::construireUrl($params);
}
public static function getUrlValidationFormulaireModificationEspeceAdmin($id_espece) {
 
public static function getUrlValidationFormulaireModificationEspeceAdmin($id_espece) {
$params = array(
'module' => 'Administration',
'action' => 'validerFormulaireModificationEspeceAdmin',
374,7 → 374,7
);
return self::construireUrl($params);
}
 
public static function getUrlFormulaireAjoutImageEspeceAdmin($id_espece) {
$params = array(
'module' => 'Administration',
383,7 → 383,7
);
return self::construireUrl($params);
}
 
public static function getUrlValidationFormulaireAjoutImageEspeceAdmin($id_espece) {
$params = array(
'module' => 'Administration',
392,39 → 392,39
);
return self::construireUrl($params);
}
 
public static function renvoyerStylesInclus() {
 
$styles = '';
$styles .= '<link href="'.self::getUrlStyle().'saisie.css" rel="stylesheet" type="text/css"/>';
$styles .= '<link href="'.self::getUrlStyle().'saisie.css" rel="stylesheet" type="text/css"/>';
$styles .= '<link href="'.self::getUrlStyle().'jquery_ui/jquery-ui-1.8.6.custom.css" rel="stylesheet" type="text/css"/>';
$styles .= '<link href="'.self::getUrlStyle().'jquery_ui/jquery.ui.datepicker.css" rel="stylesheet" type="text/css"/>';
 
return $styles;
}
 
public static function renvoyerScriptsInclus() {
 
$scripts = '<script type="text/javascript">'.
' var urlBaseJrest = "'.Config::get('url_jrest').'"; '.
'</script>';
$scripts .= '<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>';
$scripts .= '<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&key=AIzaSyC_HBnP1YDEX1ATgnvylxkW2HImJV485ZQ"></script>';
$scripts .= '<script type="text/javascript" src="'.self::getUrlScript().'jquery-1.4.4.min.js"></script>';
$scripts .= '<script type="text/javascript" src="'.self::getUrlScript().'jquery_ui/jquery-ui-1.8.6.custom.min.js"></script>';
$scripts .= '<script type="text/javascript" src="'.self::getUrlScript().'saisie.js"></script>';
 
if(AppControleur::getUtilisateur()->estAdmin()) {
$scripts .= '<script type="text/javascript" src="'.self::getUrlScript().'saisie_admin.js"></script>';
}
 
$scripts .= '<script type="text/javascript" src="'.self::getUrlScript().'jquery_ui/jquery.ui.datepicker.js"></script>';
$scripts .= '<script type="text/javascript" src="'.self::getUrlScript().'jquery_ui/jquery.ui.datepicker-fr.js"></script>';
 
return $scripts;
 
}
 
 
}
?>
?>
/trunk/applications/saisie/controleurs/Individu.php
41,7 → 41,7
 
public function getFormulaireSaisieIndividu($donnees = array()) {
 
if($donnees == array()) {
if($donnees == array()) {
$donnees['individu_nom'] = '';
}
 
57,12 → 57,12
return $this->getVue('formulaires/individu_saisie',$donnees);
}
 
public function afficherFormulaireModificationIndividu($donnees = array()) {
public function afficherFormulaireModificationIndividu($donnees = array()) {
 
$individu_dao = new IndividuDao();
 
$id_individu = $_GET['id_individu'];
$donnees['infos_individu'] = $individu_dao->getInformationsIndividu($id_individu);
$donnees['infos_individu'] = $individu_dao->getInformationsIndividu($id_individu);
$donnees['id_station'] = $_GET['id_station'];
$donnees['id_espece'] = $_GET['id_espece'];
 
70,7 → 70,7
$donnees['informations_espece'] = $espece_dao->getInformationsEspece($donnees['id_espece']);
 
$this->setSortie(self::RENDU_CORPS,$this->getVue('formulaires/individu_modification',$donnees));
}
}
 
public function afficherListeIndividu() {
 
174,6 → 174,7
$valeurs_verifiees['id_station'] = $_POST['station'];
$valeurs_verifiees['id_espece'] = $_POST['espece'];
$valeurs_verifiees['individu_nom'] = $_POST['individu_nom'];
$valeurs_verifiees['individu_commentaire'] = $_POST['individu_commentaire'];
 
return $valeurs_verifiees;
 
185,6 → 186,7
$valeurs_verifiees['id_espece'] = $_POST['id_espece'];
$valeurs_verifiees['individu_nom'] = $_POST['individu_nom'];
$valeurs_verifiees['id_individu'] = $_POST['id_individu'];
$valeurs_verifiees['individu_commentaire'] = $_POST['individu_commentaire'];
 
return $valeurs_verifiees;
 
195,7 → 197,7
$erreurs = array();
 
foreach($valeurs_a_verifier as $champ => $valeur) {
if(trim($valeur) == '') {
if(trim($valeur) == '' && $champ != 'individu_commentaire') {
$erreurs[$champ] .= ' Ce champ ne peut pas être vide';
}
}
210,11 → 212,9
public function validerFormulaireModificationIndividu() {
 
$valeurs_collectees = $this->collecterValeursFormulaireModificationIndividu();
 
$verification_ou_erreurs = $this->verifierValeursIndividu($valeurs_collectees);
 
if($verification_ou_erreurs !== true) {
 
$donnees = $valeurs_collectees;
 
$donnees['erreurs'] = $verification_ou_erreurs;
223,7 → 223,6
}
 
$valeurs_verifiees = $valeurs_collectees;
 
$id_individu = $valeurs_collectees['id_individu'];
 
$individu_dao = new IndividuDao();
/trunk/applications/saisie/controleurs/Observation.php
142,6 → 142,10
$valeurs_verifiees['id_observation'] = $_POST['id_observation'];
}
 
if(!empty($_POST['absence_observation'])) {
$valeurs_verifiees['absence_observation'] = $_POST['absence_observation'];
}
 
return $valeurs_verifiees;
}