Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 43 | Rev 62 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 43 Rev 44
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
 * Classe Controleur générale de l'application saisie.
4
 * Classe Controleur générale de l'application saisie.
5
 *
5
 *
6
 * @category    php5.2
6
 * @category    php5.2
7
 * @package     saisie
7
 * @package     saisie
8
 * @author      Aurélien Peronnet <aurelien@tela-botanica.org>
8
 * @author      Aurélien Peronnet <aurelien@tela-botanica.org>
9
 * @copyright   2010 Tela-Botanica
9
 * @copyright   2010 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: aControleur.php 152 2010-09-06 16:19:12Z aurelien $
12
 * @version     SVN: $Id: aControleur.php 152 2010-09-06 16:19:12Z aurelien $
13
 */
13
 */
14
abstract class aControleur extends Controleur {
14
abstract class aControleur extends Controleur {
15
   
15
   
16
    const FMT_DATE = '%d/%m/%Y';// Supporte les formats de dates non valides (1989-00-00)
16
    const FMT_DATE = '%d/%m/%Y';// Supporte les formats de dates non valides (1989-00-00)
17
    const FMT_DATE_TXT = '%A %d %B %Y';
17
    const FMT_DATE_TXT = '%A %d %B %Y';
18
    const FMT_DATE_HEURE = '%d/%m/%Y %H:%i:%s';// Supporte les formats de dates non valides (1989-00-00 00:00:00)
18
    const FMT_DATE_HEURE = '%d/%m/%Y %H:%i:%s';// Supporte les formats de dates non valides (1989-00-00 00:00:00)
19
    const FMT_DATE_HEURE_TXT = '%A %d %B %Yà%H:%M';
19
    const FMT_DATE_HEURE_TXT = '%A %d %B %Yà%H:%M';
20
   
20
   
21
    const META_TITRE = 'titre';
21
    const META_TITRE = 'titre';
22
    const META_DESCRIPTION = 'description';
22
    const META_DESCRIPTION = 'description';
23
    const META_TAGS = 'tags';
23
    const META_TAGS = 'tags';
24
    const RENDU_TETE = 'tete';
24
    const RENDU_TETE = 'tete';
25
    const RENDU_CORPS = 'corps';
25
    const RENDU_CORPS = 'corps';
26
    const RENDU_PIED = 'pied';
26
    const RENDU_PIED = 'pied';
27
    const RENDU_NAVIGATION = 'navigation';
27
    const RENDU_NAVIGATION = 'navigation';
28
   
28
   
29
    const TYPE_AUTRE = 'AUTRE';
29
    const TYPE_AUTRE = 'AUTRE';
30
    const TYPE_TOTAL = 'TOTAL';
30
    const TYPE_TOTAL = 'TOTAL';
31
    const SEPARATEUR_TYPE_VALEUR = '##';
31
    const SEPARATEUR_TYPE_VALEUR = '##';
32
    const SEPARATEUR_VALEURS = ';;';
32
    const SEPARATEUR_VALEURS = ';;';
33
    const SEPARATEUR_DONNEES = '||';
33
    const SEPARATEUR_DONNEES = '||';
34
    const VALEUR_NULL = 'NC';
34
    const VALEUR_NULL = 'NC';
35
   
35
   
36
    private $sortie = array();
36
    private $sortie = array();
37
    private $parametres = array();
37
    private $parametres = array();
38
    
38
    
39
    protected static $hierarchie_appels = array();
39
    protected static $hierarchie_appels = array();
40
    // FIXME : voir s'il est plus intéressant d'utiliser une méthode dans les classes filles
40
    // FIXME : voir s'il est plus intéressant d'utiliser une méthode dans les classes filles
41
    protected $url = null;
41
    protected $url = null;
42
   
42
   
43
    public function __construct()  {
43
    public function __construct()  {
44
        $registre = Registre::getInstance();
44
        $registre = Registre::getInstance();
45
        $this->parametres = $registre->get('parametres');
45
        $this->parametres = $registre->get('parametres');
46
        $this->url = $this->parametres['url'];
46
        $this->url = $this->parametres['url'];
47
        parent::__construct();
47
        parent::__construct();
48
    }
48
    }
49
   
49
   
50
    /**
50
    /**
51
     * Attribue une position de sortie à un contenu.
51
     * Attribue une position de sortie à un contenu.
52
     */
52
     */
53
    protected function setSortie($position, $contenu, $fusionner = false) {
53
    protected function setSortie($position, $contenu, $fusionner = false) {
54
        if ($this->verifierExistenceTypeSortie($position)) {
54
        if ($this->verifierExistenceTypeSortie($position)) {
55
            if ($fusionner) {
55
            if ($fusionner) {
56
                $this->sortie[$position] .= $contenu;
56
                $this->sortie[$position] .= $contenu;
57
            } else {
57
            } else {
58
                $this->sortie[$position] = $contenu;
58
                $this->sortie[$position] = $contenu;
59
            }
59
            }
60
        }
60
        }
61
    }
61
    }
62
   
62
   
63
    /**
63
    /**
64
     * Vérifie l'existence du type de sortie indiqué pour son utilisation dans le tableau de sortie.
64
     * Vérifie l'existence du type de sortie indiqué pour son utilisation dans le tableau de sortie.
65
     * @param string le type de sortie à tester.
65
     * @param string le type de sortie à tester.
66
     * @return bool true si le type de sortie est valide, sinon false.
66
     * @return bool true si le type de sortie est valide, sinon false.
67
     */
67
     */
68
    private function verifierExistenceTypeSortie($type) {
68
    private function verifierExistenceTypeSortie($type) {
69
        $existe = true;
69
        $existe = true;
70
        if ($type != self::RENDU_TETE &&
70
        if ($type != self::RENDU_TETE &&
71
            $type != self::RENDU_NAVIGATION &&
71
            $type != self::RENDU_NAVIGATION &&
72
            $type != self::RENDU_CORPS &&
72
            $type != self::RENDU_CORPS &&
73
            $type != self::RENDU_PIED &&
73
            $type != self::RENDU_PIED &&
74
            $type != self::META_TITRE &&
74
            $type != self::META_TITRE &&
75
            $type != self::META_DESCRIPTION &&
75
            $type != self::META_DESCRIPTION &&
76
            $type != self::META_TAGS) {
76
            $type != self::META_TAGS) {
77
            trigger_error("Le type de sortie '$type' n'est pas une valeur prédéfinie.", E_USER_WARNING);
77
            trigger_error("Le type de sortie '$type' n'est pas une valeur prédéfinie.", E_USER_WARNING);
78
            $existe = false;
78
            $existe = false;
79
        }
79
        }
80
        return $existe;
80
        return $existe;
81
    }
81
    }
82
   
82
   
83
    /**
83
    /**
84
     * Retourne le tableau de sortie à utiliser dans le controleur principal de l'application.
84
     * Retourne le tableau de sortie à utiliser dans le controleur principal de l'application.
85
     */
85
     */
86
    public function getSortie() {
86
    public function getSortie() {
87
        return $this->sortie;
87
        return $this->sortie;
88
    }
88
    }
89
 
89
 
90
    /**
90
    /**
91
     * Execute l'action d'un module donnée et fusionne le résultat avec le tableau de sortie.
91
     * Execute l'action d'un module donnée et fusionne le résultat avec le tableau de sortie.
92
     */
92
     */
93
    protected function executerAction($ClasseModule, $action) {
93
    protected function executerAction($ClasseModule, $action) {
94
        $module = new $ClasseModule();
94
        $module = new $ClasseModule();
95
        $module->$action();
95
        $module->$action();
96
        $this->fusionnerSortie($module->getSortie());
96
        $this->fusionnerSortie($module->getSortie());
97
       
97
       
98
    }
98
    }
99
   
99
   
100
    /**
100
    /**
101
     * Fusionne un tableau de sortie par défaut avec le tableau passé en paramètre.
101
     * Fusionne un tableau de sortie par défaut avec le tableau passé en paramètre.
102
     * @param array le tableau à fusionner
102
     * @param array le tableau à fusionner
103
     */
103
     */
104
    private function fusionnerSortie($sortie) {
104
    private function fusionnerSortie($sortie) {
105
        $this->sortie = array_merge($this->sortie, $sortie);
105
        $this->sortie = array_merge($this->sortie, $sortie);
106
    }
106
    }
107
   
107
   
108
    protected function formaterParenthese($chaine_a_afficher) {
108
    protected function formaterParenthese($chaine_a_afficher) {
109
        if ($chaine_a_afficher != '') {
109
        if ($chaine_a_afficher != '') {
110
            $chaine_a_afficher = '('.$chaine_a_afficher.')';
110
            $chaine_a_afficher = '('.$chaine_a_afficher.')';
111
        }
111
        }
112
        return $chaine_a_afficher;
112
        return $chaine_a_afficher;
113
    }
113
    }
114
   
114
   
115
    protected function formaterSautDeLigne($chaine_a_formater) {
115
    protected function formaterSautDeLigne($chaine_a_formater) {
116
        $txt_a_retourner = preg_replace('/\n/', '<br />', $chaine_a_formater);
116
        $txt_a_retourner = preg_replace('/\n/', '<br />', $chaine_a_formater);
117
        return $txt_a_retourner;
117
        return $txt_a_retourner;
118
    }
118
    }
119
   
119
   
120
    protected function formaterTableauDeTxt($tableau_de_txt, $majuscule = true, $point_final = true) {
120
    protected function formaterTableauDeTxt($tableau_de_txt, $majuscule = true, $point_final = true) {
121
        $chaine_a_afficher = '';
121
        $chaine_a_afficher = '';
122
        $taille_du_tableau = count($tableau_de_txt);
122
        $taille_du_tableau = count($tableau_de_txt);
123
        if ($taille_du_tableau > 0) {
123
        if ($taille_du_tableau > 0) {
124
            $index_avt_dernier = $taille_du_tableau - 1;
124
            $index_avt_dernier = $taille_du_tableau - 1;
125
            for ($i = 0; $i < $taille_du_tableau; $i++) {
125
            for ($i = 0; $i < $taille_du_tableau; $i++) {
126
                $mot = $tableau_de_txt[$i];
126
                $mot = $tableau_de_txt[$i];
127
                if ($i != $index_avt_dernier) {
127
                if ($i != $index_avt_dernier) {
128
                    $chaine_a_afficher .= $mot.', ';
128
                    $chaine_a_afficher .= $mot.', ';
129
                } else {
129
                } else {
130
                    $chaine_a_afficher .= $this->nettoyerPointFinal($mot);
130
                    $chaine_a_afficher .= $this->nettoyerPointFinal($mot);
131
                    if ($point_final) {
131
                    if ($point_final) {
132
                        $chaine_a_afficher .= '.';
132
                        $chaine_a_afficher .= '.';
133
                    }
133
                    }
134
                }
134
                }
135
            }
135
            }
136
        }
136
        }
137
        if ($majuscule) {
137
        if ($majuscule) {
138
            $chaine_a_afficher = ucfirst($chaine_a_afficher);
138
            $chaine_a_afficher = ucfirst($chaine_a_afficher);
139
        }
139
        }
140
        return $chaine_a_afficher;
140
        return $chaine_a_afficher;
141
    }
141
    }
142
   
142
   
143
    protected function formaterOuiNon($chaine_a_formater) {
143
    protected function formaterOuiNon($chaine_a_formater) {
144
        $txt_a_retourner = '';
144
        $txt_a_retourner = '';
145
        if ($chaine_a_formater == '0') {
145
        if ($chaine_a_formater == '0') {
146
            $txt_a_retourner = 'non';
146
            $txt_a_retourner = 'non';
147
        } else if ($chaine_a_formater == '1') {
147
        } else if ($chaine_a_formater == '1') {
148
            $txt_a_retourner = 'oui';
148
            $txt_a_retourner = 'oui';
149
        }
149
        }
150
        return $txt_a_retourner;
150
        return $txt_a_retourner;
151
    }
151
    }
152
   
152
   
153
    protected function formaterDate($date, $format = self::FMT_DATE_HEURE) {
153
    protected function formaterDate($date, $format = self::FMT_DATE_HEURE) {
154
        if ($date == '' || $date == '0000-00-00' || $date == '0000-00-00 00:00:00') {
154
        if ($date == '' || $date == '0000-00-00' || $date == '0000-00-00 00:00:00') {
155
            $date = 'Inconnue';
155
            $date = 'Inconnue';
156
        } else {
156
        } else {
157
            if (preg_match('/^([0-9]{4})-([0-9]{2})-([0-9]{2})(?: ([0-9]{2}):([0-9]{2}):([0-9]{2})|)$/', $date, $match)) {// Date Heure
157
            if (preg_match('/^([0-9]{4})-([0-9]{2})-([0-9]{2})(?: ([0-9]{2}):([0-9]{2}):([0-9]{2})|)$/', $date, $match)) {// Date Heure
158
                $annee = $match[1];
158
                $annee = $match[1];
159
                $mois = $match[2];
159
                $mois = $match[2];
160
                $jour = $match[3];
160
                $jour = $match[3];
161
                $heure = (isset($match[4])) ? $match[4] : '00';
161
                $heure = (isset($match[4])) ? $match[4] : '00';
162
                $minute = (isset($match[5])) ? $match[5] : '00';
162
                $minute = (isset($match[5])) ? $match[5] : '00';
163
                $seconde = (isset($match[6])) ? $match[6] : '00';
163
                $seconde = (isset($match[6])) ? $match[6] : '00';
164
                if ($format == self::FMT_DATE && $jour == '00' && $mois == '00') {
164
                if ($format == self::FMT_DATE && $jour == '00' && $mois == '00') {
165
                    $date = $annee;
165
                    $date = $annee;
166
                } else if ($format == self::FMT_DATE && $jour == '00') {
166
                } else if ($format == self::FMT_DATE && $jour == '00') {
167
                    $date = strftime('%b', mktime(0, 0, 0, $mois, 1)).' '.$annee;
167
                    $date = strftime('%b', mktime(0, 0, 0, $mois, 1)).' '.$annee;
168
                } else {
168
                } else {
169
                    $timestamp = strtotime($date);
169
                    $timestamp = strtotime($date);
170
                    if ($timestamp !== false) {
170
                    if ($timestamp !== false) {
171
                        $date = strftime($format, $timestamp);
171
                        $date = strftime($format, $timestamp);
172
                    }                  
172
                    }                  
173
                }
173
                }
174
            } else {
174
            } else {
175
                $e = "La chaine '$date' n'est pas reconnue.";
175
                $e = "La chaine '$date' n'est pas reconnue.";
176
                trigger_error($e, E_USER_WARNING);
176
                trigger_error($e, E_USER_WARNING);
177
            }
177
            }
178
        }
178
        }
179
        return $date;
179
        return $date;
180
    }
180
    }
181
   
181
   
182
    protected function formaterCourriels($courriels) {
182
    protected function formaterCourriels($courriels) {
183
        $fmt_courriels = '';
183
        $fmt_courriels = '';
184
        if (!empty($courriels)) {
184
        if (!empty($courriels)) {
185
            $courriels = (is_array($courriels)) ? $courriels : array($courriels);
185
            $courriels = (is_array($courriels)) ? $courriels : array($courriels);
186
            foreach ($courriels as $cle => $courriel) {
186
            foreach ($courriels as $cle => $courriel) {
187
                $courriel = preg_replace('/@/', ' [arrobase] ', $courriel);
187
                $courriel = preg_replace('/@/', ' [arrobase] ', $courriel);
188
                $courriel = preg_replace('/[.]([^.]+)$/', " [point] $1", $courriel);
188
                $courriel = preg_replace('/[.]([^.]+)$/', " [point] $1", $courriel);
189
                $fmt_courriels[] = $this->getVue('courriel', array('courriel' => $courriel));
189
                $fmt_courriels[] = $this->getVue('courriel', array('courriel' => $courriel));
190
            }
190
            }
191
            $fmt_courriels = implode(', ', $fmt_courriels);
191
            $fmt_courriels = implode(', ', $fmt_courriels);
192
        }
192
        }
193
        return $fmt_courriels;
193
        return $fmt_courriels;
194
    }
194
    }
195
   
195
   
196
    protected function nettoyerPointFinal($mot) {
196
    protected function nettoyerPointFinal($mot) {
197
        $mot = preg_replace('/[.]$/', '', $mot);
197
        $mot = preg_replace('/[.]$/', '', $mot);
198
        return $mot;
198
        return $mot;
199
    }
199
    }
200
   
200
   
201
    protected function postraiterDonnees(&$tableau) {
201
    protected function postraiterDonnees(&$tableau) {
202
        if (count($tableau) > 0) {
202
        if (count($tableau) > 0) {
203
            foreach ($tableau as $cle => &$valeur) {
203
            foreach ($tableau as $cle => &$valeur) {
204
                if ($valeur == '') {
204
                if ($valeur == '') {
205
                    $valeur = '&nbsp;';
205
                    $valeur = '&nbsp;';
206
                } else if (is_string($valeur)) {
206
                } else if (is_string($valeur)) {
207
                    $valeur = $this->remplacerEsperluette($valeur);
207
                    $valeur = $this->remplacerEsperluette($valeur);
208
                } else if (is_array($valeur)) {
208
                } else if (is_array($valeur)) {
209
                    $this->postraiterDonnees($valeur);
209
                    $this->postraiterDonnees($valeur);
210
                }
210
                }
211
            }
211
            }
212
        }
212
        }
213
    }
213
    }
214
   
214
   
215
    private function remplacerEsperluette($txt) {
215
    private function remplacerEsperluette($txt) {
216
        $txt = preg_replace('/&(?!([a-z]+|#[0-9]+|#x[0-9a-f]+);)/i', '&amp;', $txt, -1);
216
        $txt = preg_replace('/&(?!([a-z]+|#[0-9]+|#x[0-9a-f]+);)/i', '&amp;', $txt, -1);
217
        return $txt;
217
        return $txt;
218
    }
218
    }
219
   
219
   
220
    protected function chargerPiedDePage() {
220
    protected function chargerPiedDePage() {
221
        $donnees['appli'] = Application::getInfo();
221
        $donnees['appli'] = Application::getInfo();
222
        $this->setSortie(self::RENDU_PIED, $this->getVue('pied', $donnees));
222
        $this->setSortie(self::RENDU_PIED, $this->getVue('pied', $donnees));
223
    }
223
    }
224
    
224
    
225
    public static function getUrlSquelette() {
225
    public static function getUrlSquelette() {
226
    	    	
226
    	    	
227
    	$url_base = self::getUrlBaseComplete();    	
227
    	$url_base = self::getUrlBaseComplete();    	
228
    	$url_base_squelette = $url_base.Config::get('dossier_squelettes').DS;
228
    	$url_base_squelette = $url_base.Config::get('dossier_squelettes').DS;
229
    	
229
    	
230
    	return $url_base_squelette;
230
    	return $url_base_squelette;
231
    }
231
    }
232
    
232
    
233
    public static function getUrlStyle() {
233
    public static function getUrlStyle() {
234
    	$url_base_style = self::getUrlSquelette().'css'.DS;
234
    	$url_base_style = self::getUrlSquelette().'css'.DS;
235
    	
235
    	
236
    	return $url_base_style;
236
    	return $url_base_style;
237
    }
237
    }
238
    
238
    
239
    public static function getUrlScript() {
239
    public static function getUrlScript() {
240
    	$url_base_script = self::getUrlSquelette().'js'.DS;
240
    	$url_base_script = self::getUrlSquelette().'js'.DS;
241
    	
241
    	
242
    	return $url_base_script;
242
    	return $url_base_script;
243
    }
243
    }
244
    
244
    
245
    public static function getUrlImage() {
245
    public static function getUrlImage() {
246
    	$url_base_image = self::getUrlSquelette().'images'.DS;
246
    	$url_base_image = self::getUrlSquelette().'images'.DS;
247
    	
247
    	
248
    	return $url_base_image;
248
    	return $url_base_image;
249
    }
249
    }
250
    
250
    
251
	public static function getUrlBase() {
251
	public static function getUrlBase() {
252
		
252
		
253
		$base_vrai_chemin = str_replace(realpath($_SERVER['DOCUMENT_ROOT']),'',realpath(Application::getChemin()));
253
		$base_vrai_chemin = str_replace(realpath($_SERVER['DOCUMENT_ROOT']),'',realpath(Application::getChemin()));
254
		$base_vrai_chemin .= '/';
254
		$base_vrai_chemin .= '/';
255
		
255
		
256
		return $base_vrai_chemin;
256
		return $base_vrai_chemin;
257
	}
257
	}
258
	
258
	
259
	public static function getUrlBaseComplete() {
259
	public static function getUrlBaseComplete() {
260
		return 'http://'.$_SERVER['SERVER_NAME'].str_replace(realpath($_SERVER['DOCUMENT_ROOT']),'',realpath(Application::getChemin())).'/';
260
		return 'http://'.$_SERVER['SERVER_NAME'].str_replace(realpath($_SERVER['DOCUMENT_ROOT']),'',realpath(Application::getChemin())).'/';
261
	}
261
	}
262
    
262
    
263
    public static function getUrlConsultationFicheStation($id_station) {  	
263
    public static function getUrlConsultationFicheStation($id_station) {  	
264
    	// TODO: gérer les urls comme dans l'annuaire
264
    	// TODO: gérer les urls comme dans l'annuaire
265
    	return '?module=Station&action=afficherInformationsStation&id_station='.$id_station; 	
265
    	return '?module=Station&action=afficherInformationsStation&id_station='.$id_station; 	
266
    }
266
    }
267
    
267
    
268
    public static function getUrlFormulaireSaisieStation() {
268
    public static function getUrlFormulaireSaisieStation() {
269
    	// TODO: gérer les urls comme dans l'annuaire
269
    	// TODO: gérer les urls comme dans l'annuaire
270
    	return '?module=Station&action=afficherFormulaireSaisieStation';
270
    	return '?module=Station&action=afficherFormulaireSaisieStation&id_station=saisie';
271
    }
271
    }
272
    
272
    
273
    public static function getUrlValidationFormulaireSaisieStation() {
273
    public static function getUrlValidationFormulaireSaisieStation() {
274
    	// TODO: gérer les urls comme dans l'annuaire
274
    	// TODO: gérer les urls comme dans l'annuaire
275
    	return '?module=Station&action=validerFormulaireSaisieStation';
275
    	return '?module=Station&action=validerFormulaireSaisieStation';
276
    }
276
    }
277
    
277
    
278
    public static function getUrlFormulaireModificationStation($id_station) {
278
    public static function getUrlFormulaireModificationStation($id_station) {
279
    	// TODO: gérer les urls comme dans l'annuaire
279
    	// TODO: gérer les urls comme dans l'annuaire
280
    	return '?module=Station&action=afficherFormulaireModificationStation&id_station='.$id_station;
280
    	return '?module=Station&action=afficherFormulaireModificationStation&id_station='.$id_station;
281
    }
281
    }
282
    
282
    
283
    public static function getUrlConsultationFicheIndividu($id_station, $id_espece, $id_individu) {  	
283
    public static function getUrlConsultationFicheIndividu($id_station, $id_espece, $id_individu) {  	
284
    	// TODO: gérer les urls comme dans l'annuaire
284
    	// TODO: gérer les urls comme dans l'annuaire
285
    	return '?module=Individu&action=afficherInformationsIndividu&id_station='.$id_station.'&id_espece='.$id_espece.'&id_individu='.$id_individu;
285
    	return '?module=Individu&action=afficherInformationsIndividu&id_station='.$id_station.'&id_espece='.$id_espece.'&id_individu='.$id_individu;
286
    	
286
    	
287
    }
287
    }
288
    
288
    
289
	public static function getUrlFormulaireSaisieIndividu($id_station, $id_espece) {  	
289
	public static function getUrlFormulaireSaisieIndividu($id_station, $id_espece) {  	
290
    	// TODO: gérer les urls comme dans l'annuaire
290
    	// TODO: gérer les urls comme dans l'annuaire
291
    	return '?module=Individu&action=afficherFormulaireSaisieIndividu&id_station='.$id_station.'&id_espece='.$id_espece; 	
291
    	return '?module=Individu&action=afficherFormulaireSaisieIndividu&id_station='.$id_station.'&id_espece='.$id_espece; 	
292
    }
292
    }
293
    
293
    
294
	public static function getUrlValidationFormulaireSaisieIndividu($id_station, $id_espece) {  	
294
	public static function getUrlValidationFormulaireSaisieIndividu($id_station, $id_espece) {  	
295
    	// TODO: gérer les urls comme dans l'annuaire
295
    	// TODO: gérer les urls comme dans l'annuaire
296
    	return '?module=Individu&action=validerFormulaireSaisieIndividu&id_station='.$id_station.'&id_espece='.$id_espece; 	
296
    	return '?module=Individu&action=validerFormulaireSaisieIndividu&id_station='.$id_station.'&id_espece='.$id_espece; 	
297
    }
297
    }
298
  
298
  
-
 
299
    public static function getUrlConsultationEspeceStation($id_station, $id_espece, $annee = null) { 
-
 
300
        if($annee == null) {
-
 
301
    		$annee = date('Y');
299
    public static function getUrlConsultationEspeceStation($id_station, $id_espece) {  	
302
    	} 	
300
    	// TODO: gérer les urls comme dans l'annuaire
303
    	// TODO: gérer les urls comme dans l'annuaire
301
    	return '?module=Individu&action=afficherListeIndividu&id_station='.$id_station.'&id_espece='.$id_espece;
304
    	return '?module=Individu&action=afficherListeIndividu&id_station='.$id_station.'&id_espece='.$id_espece.'&annee='.$annee;
302
    	
305
    	
303
    }
306
    }
304
 
307
 
305
	public static function getUrlFormulaireAjoutEspece($id_station) {  	
308
	public static function getUrlFormulaireAjoutEspece($id_station) {  	
306
    	// TODO: gérer les urls comme dans l'annuaire
309
    	// TODO: gérer les urls comme dans l'annuaire
307
    	return '?module=Espece&action=afficherFormulaireSaisieEspece&id_station='.$id_station;	
310
    	return '?module=Espece&action=afficherFormulaireSaisieEspece&id_station='.$id_station.'&id_espece=saisie';	
308
    
311
    
309
	}
312
	}
310
	
313
	
311
	public static function getUrlValidationFormulaireSaisieEspece($id_station) {  	
314
	public static function getUrlValidationFormulaireSaisieEspece($id_station) {  	
312
    	// TODO: gérer les urls comme dans l'annuaire
315
    	// TODO: gérer les urls comme dans l'annuaire
313
    	return '?module=Espece&action=validerFormulaireSaisieEspece&id_station='.$id_station;	
316
    	return '?module=Espece&action=validerFormulaireSaisieEspece&id_station='.$id_station.'&id_espece=saisie';	
314
	}
317
	}
315
    
318
    
-
 
319
    public static function getUrlFormulaireModificationObservation($id_station,$id_espece, $id_individu, $annee = null) {
-
 
320
        if($annee == null) {
-
 
321
    		$annee = date('Y');
316
    public static function getUrlFormulaireModificationObservation($id_station,$id_espece, $id_individu) {
322
    	}
317
    	// TODO: gérer les urls comme dans l'annuaire
323
    	// TODO: gérer les urls comme dans l'annuaire
318
    	return '?module=Observation&action=afficherFormulaireModificationObservation&id_station='.$id_station.'&id_espece='.$id_espece.'&id_individu='.$id_individu;	
324
    	return '?module=Observation&action=afficherFormulaireModificationObservation&id_station='.$id_station.'&id_espece='.$id_espece.'&id_individu='.$id_individu.'&annee='.$annee;	
319
    }
325
    }
320
    
326
    
-
 
327
	public static function getUrlValidationFormulaireModificationObservation($id_station,$id_espece, $id_individu, $annee = null) {
-
 
328
    	// TODO: gérer les urls comme dans l'annuaire
-
 
329
    	if($annee == null) {
321
	public static function getUrlValidationFormulaireModificationObservation($id_station,$id_espece, $id_individu) {
330
    		$annee = date('Y');
322
    	// TODO: gérer les urls comme dans l'annuaire
331
    	}
323
    	return '?module=Observation&action=validerFormulaireModificationObservation&id_station='.$id_station.'&id_espece='.$id_espece.'&id_individu='.$id_individu;	
332
    	return '?module=Observation&action=validerFormulaireModificationObservation&id_station='.$id_station.'&id_espece='.$id_espece.'&id_individu='.$id_individu.'&annee='.$annee;	
324
    }
333
    }
325
} 
334
}