Subversion Repositories Applications.papyrus

Rev

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

Rev 273 Rev 286
1
<?php
1
<?php
2
//vim: set expandtab tabstop=4 shiftwidth=4:
2
//vim: set expandtab tabstop=4 shiftwidth=4:
3
// +------------------------------------------------------------------------------------------------------+
3
// +------------------------------------------------------------------------------------------------------+
4
// | PHP version 4.1                                                                                      |
4
// | PHP version 4.1                                                                                      |
5
// +------------------------------------------------------------------------------------------------------+
5
// +------------------------------------------------------------------------------------------------------+
6
// | Copyright (C) 2001 COUDOUNEAU Laurent (lc@gsite.org)                                                 |
-
 
7
// | Copyright (C) 2003 Tela Botanica (accueil@tela-botanica.org)                                         |
6
// | Copyright (C) 2003 Tela Botanica (accueil@tela-botanica.org)                                         |
8
// +------------------------------------------------------------------------------------------------------+
7
// +------------------------------------------------------------------------------------------------------+
9
// |                                                                                                      |
8
// |                                                                                                      |
10
// | This library is free software; you can redistribute it and/or                                        |
9
// | This library is free software; you can redistribute it and/or                                        |
11
// | modify it under the terms of the GNU Lesser General Public                                           |
10
// | modify it under the terms of the GNU Lesser General Public                                           |
12
// | License as published by the Free Software Foundation; either                                         |
11
// | License as published by the Free Software Foundation; either                                         |
13
// | version 2.1 of the License, or (at your option) any later version.                                   |
12
// | version 2.1 of the License, or (at your option) any later version.                                   |
14
// |                                                                                                      |
13
// |                                                                                                      |
15
// | This library is distributed in the hope that it will be useful,                                      |
14
// | This library is distributed in the hope that it will be useful,                                      |
16
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
15
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
17
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
16
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
18
// | Lesser General Public License for more details.                                                      |
17
// | Lesser General Public License for more details.                                                      |
19
// |                                                                                                      |
18
// |                                                                                                      |
20
// | You should have received a copy of the GNU Lesser General Public                                     |
19
// | You should have received a copy of the GNU Lesser General Public                                     |
21
// | License along with this library; if not, write to the Free Software                                  |
20
// | License along with this library; if not, write to the Free Software                                  |
22
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
23
// |                                                                                                      |
22
// |                                                                                                      |
24
// +------------------------------------------------------------------------------------------------------+
23
// +------------------------------------------------------------------------------------------------------+
25
// CVS : $Id: pap_initialise_info.inc.php,v 1.17 2005-02-23 15:35:04 jpm Exp $
24
// CVS : $Id: pap_initialise_info.inc.php,v 1.18 2005-02-28 11:20:42 jpm Exp $
26
/**
25
/**
27
*Initialisation de Papyrus : vérification et récupération de paramètres généraux.
26
*Initialisation de Papyrus : vérification et récupération de paramètres généraux.
28
*
27
*
29
* La page contient le code initialisant l'éxecution du rendu d'une page par Papyrus.
28
* La page contient le code initialisant l'éxecution du rendu d'une page par Papyrus.
30
* Nous y trouvons la recherche des informations disponibles sur :
29
* Nous y trouvons la recherche des informations disponibles sur :
31
* - le site présent sur le serveur demandé,
30
* - le site présent sur le serveur demandé,
32
* - l'identification,
31
* - l'identification,
33
* - la langue,
32
* - la langue,
34
* - le menu,
33
* - le menu,
35
* - la page
34
* - la page
36
* - l'application
35
* - l'application
37
*
36
*
38
*@package Papyrus
37
*@package Papyrus
39
//Auteur original :
38
//Auteur original :
40
*@author            Laurent COUDOUNEAU <laurent.coudouneau@ema.fr>
39
*@author            Jean-Pascal MILCENT <jpm@tela-botanica.org>
41
//Autres auteurs :
40
//Autres auteurs :
42
*@author            Alexandre GRANIER <alex@tela-botanica.org>
41
*@author            Alexandre GRANIER <alex@tela-botanica.org>
43
*@author            Jean-Pascal MILCENT <jpm@tela-botanica.org>
42
*@author            Laurent COUDOUNEAU <laurent.coudouneau@ema.fr>
44
*@copyright         Tela-Botanica 2000-2004
43
*@copyright         Tela-Botanica 2000-2004
45
*@version           $Revision: 1.17 $ $Date: 2005-02-23 15:35:04 $
44
*@version           $Revision: 1.18 $ $Date: 2005-02-28 11:20:42 $
46
// +------------------------------------------------------------------------------------------------------+
45
// +------------------------------------------------------------------------------------------------------+
47
*/
46
*/
48
 
47
 
49
// +------------------------------------------------------------------------------------------------------+
48
// +------------------------------------------------------------------------------------------------------+
50
// |                                            ENTÊTE du PROGRAMME                                       |
49
// |                                            ENTÊTE du PROGRAMME                                       |
51
// +------------------------------------------------------------------------------------------------------+
50
// +------------------------------------------------------------------------------------------------------+
52
 
51
 
53
/** <br> Inclusion de la bibliothèque de fonctions servant à l'initialisation des variables globales de Papyrus. */
52
/** <br> Inclusion de la bibliothèque de fonctions servant à l'initialisation des variables globales de Papyrus. */
54
require_once GEN_CHEMIN_BIBLIO.'pap_initialisation.fonct.php';
53
require_once GEN_CHEMIN_BIBLIO.'pap_initialisation.fonct.php';
55
 
54
 
56
/** <br> Inclusion de l'objet PEAR servant à négocier le language avec le navigateur client. */
55
/** <br> Inclusion de l'objet PEAR servant à négocier le language avec le navigateur client. */
57
require_once 'HTTP.php';
56
require_once 'HTTP.php';
58
 
57
 
59
/** <br> Inclusion de la classe PEAR gérant les URL.
58
/** <br> Inclusion de la classe PEAR gérant les URL.
60
* Utilisé pour l'url demandée par le client.
59
* Utilisé pour l'url demandée par le client.
61
*/
60
*/
62
require_once 'Net/URL.php';
61
require_once 'Net/URL.php';
63
 
62
 
64
// +------------------------------------------------------------------------------------------------------+
63
// +------------------------------------------------------------------------------------------------------+
65
// |                                            CORPS du PROGRAMME                                        |
64
// |                                            CORPS du PROGRAMME                                        |
66
// +------------------------------------------------------------------------------------------------------+
65
// +------------------------------------------------------------------------------------------------------+
67
 
66
 
68
// +------------------------------------------------------------------------------------------------------+
67
// +------------------------------------------------------------------------------------------------------+
69
// Gestion des sites : disponiblent sur le serveur courant.
68
// Gestion des sites : disponiblent sur le serveur courant.
70
 
69
 
71
// Liste des catégories de site à prendre en compte :
70
// Liste des catégories de site à prendre en compte :
72
$site_liste_id = '102, 103';// 102 = site "principal" et 103 = site "externe"
71
$site_liste_id = '102, 103';// 102 = site "principal" et 103 = site "externe"
73
if ( (! isset($_GET[GEN_URL_CLE_SITE]) || empty($_GET[GEN_URL_CLE_SITE])) && (! isset($_GET[GEN_URL_CLE_MENU]) || empty($_GET[GEN_URL_CLE_MENU])) ) {
72
if ( (! isset($_GET[GEN_URL_CLE_SITE]) || empty($_GET[GEN_URL_CLE_SITE])) && (! isset($_GET[GEN_URL_CLE_MENU]) || empty($_GET[GEN_URL_CLE_MENU])) ) {
74
    $requete =  'SELECT gen_site.*, GSR02.* '.
73
    $requete =  'SELECT gen_site.*, GSR02.* '.
75
                'FROM gen_site, gen_site_relation AS GSR01, gen_site_relation AS GSR02 '.
74
                'FROM gen_site, gen_site_relation AS GSR01, gen_site_relation AS GSR02 '.
76
                'WHERE GSR01.gsr_id_site_01 = GSR01.gsr_id_site_02 '.
75
                'WHERE GSR01.gsr_id_site_01 = GSR01.gsr_id_site_02 '.
77
                'AND GSR01.gsr_id_valeur = 101 '.// 101 = site défaut
76
                'AND GSR01.gsr_id_valeur = 101 '.// 101 = site défaut
78
                'AND GSR01.gsr_id_site_01 = gs_id_site '.
77
                'AND GSR01.gsr_id_site_01 = gs_id_site '.
79
                'AND GSR02.gsr_id_site_01 = GSR02.gsr_id_site_02 '.
78
                'AND GSR02.gsr_id_site_01 = GSR02.gsr_id_site_02 '.
80
                'AND GSR02.gsr_id_valeur IN ('.$site_liste_id.') '.
79
                'AND GSR02.gsr_id_valeur IN ('.$site_liste_id.') '.
81
                'AND GSR02.gsr_id_site_01 = gs_id_site';
80
                'AND GSR02.gsr_id_site_01 = gs_id_site';
82
    
81
    
83
    $resultat = $db->query($requete);
82
    $resultat = $db->query($requete);
84
    if (DB::isError($resultat)) {
83
    if (DB::isError($resultat)) {
85
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
84
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
86
    }
85
    }
87
    
86
    
88
    // Aucun site trouvé
87
    // Aucun site trouvé
89
    if ($resultat->numRows() == 0) {
88
    if ($resultat->numRows() == 0) {
90
        // Appel à l'application Installateur si nécessaire
89
        // Appel à l'application Installateur si nécessaire
91
        /** <br> Inclusion du programme Installateur de Papyrus.
90
        /** <br> Inclusion du programme Installateur de Papyrus.
92
        * L'abscence de site oblige à relancer l'installation et le script sql qui regénèrera la base de données.*/
91
        * L'abscence de site oblige à relancer l'installation et le script sql qui regénèrera la base de données.*/
93
        include_once GEN_CHEMIN_APPLICATION.'installateur/installateur.php';
92
        include_once GEN_CHEMIN_APPLICATION.'installateur/installateur.php';
94
        $_GEN_commun['sortie'] = afficherContenuCorps();
93
        $_GEN_commun['sortie'] = afficherContenuCorps();
95
        include_once GEN_CHEMIN_PAP.'pap_envoi.inc.php';
94
        include_once GEN_CHEMIN_PAP.'pap_envoi.inc.php';
96
        // Fin du programme Papyrus.
95
        // Fin du programme Papyrus.
97
        exit(0);
96
        exit(0);
98
    }
97
    }
99
    // Nous avons trouvé un site.
98
    // Nous avons trouvé un site.
100
    $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
99
    $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
101
    $resultat->free();
100
    $resultat->free();
102
    if (GEN_URL_ID_TYPE_SITE == 'int') {
101
    if (GEN_URL_ID_TYPE_SITE == 'int') {
103
        $_GEN_commun['url_site'] = $_GEN_commun['info_site']->gs_code_num;
102
        $_GEN_commun['url_site'] = $_GEN_commun['info_site']->gs_code_num;
104
    } else {
103
    } else {
105
        $_GEN_commun['url_site'] = $_GEN_commun['info_site']->gs_code_alpha;
104
        $_GEN_commun['url_site'] = $_GEN_commun['info_site']->gs_code_alpha;
106
    }
105
    }
107
} else if ( (! isset($_GET[GEN_URL_CLE_SITE]) || empty($_GET[GEN_URL_CLE_SITE])) && (isset($_GET[GEN_URL_CLE_MENU]) || !empty($_GET[GEN_URL_CLE_MENU])) ) {
106
} else if ( (! isset($_GET[GEN_URL_CLE_SITE]) || empty($_GET[GEN_URL_CLE_SITE])) && (isset($_GET[GEN_URL_CLE_MENU]) || !empty($_GET[GEN_URL_CLE_MENU])) ) {
108
    // Le code du menu est présent dans l'url mais pas celui du site
107
    // Le code du menu est présent dans l'url mais pas celui du site
109
    // Nous récupérons les infos du menu et du sites dans la variable globale de Papyrus.
108
    // Nous récupérons les infos du menu et du sites dans la variable globale de Papyrus.
110
    $_GEN_commun['url_menu'] = $_GET[GEN_URL_CLE_MENU];
109
    $_GEN_commun['url_menu'] = $_GET[GEN_URL_CLE_MENU];
111
    
110
    
112
    // Récupération des informations sur le menu demandé
111
    // Récupération des informations sur le menu demandé
113
    $requete =  'SELECT * '.
112
    $requete =  'SELECT * '.
114
                'FROM gen_menu '.
113
                'FROM gen_menu '.
115
                'WHERE ';
114
                'WHERE ';
116
    $requete .= (GEN_URL_ID_TYPE_MENU == 'int')
115
    $requete .= (GEN_URL_ID_TYPE_MENU == 'int')
117
        ? 'gm_code_num = '.$_GEN_commun['url_menu']
116
        ? 'gm_code_num = '.$_GEN_commun['url_menu']
118
        : 'gm_code_alpha = "'.$_GEN_commun['url_menu'].'"';
117
        : 'gm_code_alpha = "'.$_GEN_commun['url_menu'].'"';
119
    
118
    
120
    $resultat = $db->query($requete);
119
    $resultat = $db->query($requete);
121
    (DB::isError($resultat))
120
    (DB::isError($resultat))
122
        ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
121
        ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
123
        : '';
122
        : '';
124
    
123
    
125
    $_GEN_commun['info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
124
    $_GEN_commun['info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
126
    $resultat->free();
125
    $resultat->free();
127
    if ($_GEN_commun['info_menu']->gm_ce_site != 0) {
126
    if ($_GEN_commun['info_menu']->gm_ce_site != 0) {
128
        // Récupération des infos du site
127
        // Récupération des infos du site
129
        $requete =  'SELECT * '.
128
        $requete =  'SELECT * '.
130
                    'FROM gen_site, gen_site_relation '.
129
                    'FROM gen_site, gen_site_relation '.
131
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
130
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
132
                    'AND gsr_id_valeur IN ('.$site_liste_id.') '.
131
                    'AND gsr_id_valeur IN ('.$site_liste_id.') '.
133
                    'AND gsr_id_site_01 = gs_id_site '.
132
                    'AND gsr_id_site_01 = gs_id_site '.
134
                    'AND gs_id_site = '. $_GEN_commun['info_menu']->gm_ce_site;
133
                    'AND gs_id_site = '. $_GEN_commun['info_menu']->gm_ce_site;
135
        
134
        
136
        $resultat = $db->query($requete);
135
        $resultat = $db->query($requete);
137
        (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
136
        (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
138
        
137
        
139
        $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
138
        $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
140
        $_GEN_commun['url_site'] = (GEN_URL_ID_TYPE_SITE == 'int')
139
        $_GEN_commun['url_site'] = (GEN_URL_ID_TYPE_SITE == 'int')
141
            ? $_GEN_commun['info_site']->gs_code_num
140
            ? $_GEN_commun['info_site']->gs_code_num
142
            : $_GEN_commun['info_site']->gs_code_alpha;
141
            : $_GEN_commun['info_site']->gs_code_alpha;
143
        $resultat->free();
142
        $resultat->free();
144
    } else {
143
    } else {
145
        // Récupération des infos du site
144
        // Récupération des infos du site
146
        $requete =  'SELECT * '.
145
        $requete =  'SELECT * '.
147
                    'FROM gen_site, gen_site_relation '.
146
                    'FROM gen_site, gen_site_relation '.
148
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
147
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
149
                    'AND gsr_id_valeur = 101 '.
148
                    'AND gsr_id_valeur = 101 '.
150
                    'AND gsr_id_site_01 = gs_id_site ';
149
                    'AND gsr_id_site_01 = gs_id_site ';
151
        
150
        
152
        $resultat = $db->query($requete);
151
        $resultat = $db->query($requete);
153
        (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
152
        (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
154
        
153
        
155
        $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
154
        $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
156
        $_GEN_commun['url_site'] = (GEN_URL_ID_TYPE_SITE == 'int')
155
        $_GEN_commun['url_site'] = (GEN_URL_ID_TYPE_SITE == 'int')
157
            ? $_GEN_commun['info_site']->gs_code_num
156
            ? $_GEN_commun['info_site']->gs_code_num
158
            : $_GEN_commun['info_site']->gs_code_alpha;
157
            : $_GEN_commun['info_site']->gs_code_alpha;
159
        $resultat->free();
158
        $resultat->free();
160
    }
159
    }
161
} else {
160
} else {
162
    // Récupération de la valeur identifiant le site depuis l'url
161
    // Récupération de la valeur identifiant le site depuis l'url
163
    $_GEN_commun['url_site'] = $_GET[GEN_URL_CLE_SITE];
162
    $_GEN_commun['url_site'] = $_GET[GEN_URL_CLE_SITE];
164
    
163
    
165
    // Récupération des informations sur le site
164
    // Récupération des informations sur le site
166
    $requete =  'SELECT * '.
165
    $requete =  'SELECT * '.
167
                'FROM gen_site, gen_site_relation '.
166
                'FROM gen_site, gen_site_relation '.
168
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
167
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
169
                'AND gsr_id_valeur IN ('.$site_liste_id.') '.
168
                'AND gsr_id_valeur IN ('.$site_liste_id.') '.
170
                'AND gsr_id_site_01 = gs_id_site '.
169
                'AND gsr_id_site_01 = gs_id_site '.
171
                'AND ';
170
                'AND ';
172
    $requete .= (GEN_URL_ID_TYPE_SITE == 'int')
171
    $requete .= (GEN_URL_ID_TYPE_SITE == 'int')
173
        ? 'gs_code_num = '.$_GEN_commun['url_site']
172
        ? 'gs_code_num = '.$_GEN_commun['url_site']
174
        : 'gs_code_alpha = "'.$_GEN_commun['url_site'].'"';
173
        : 'gs_code_alpha = "'.$_GEN_commun['url_site'].'"';
175
    
174
    
176
    $resultat = $db->query($requete);
175
    $resultat = $db->query($requete);
177
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
176
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
178
    $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
177
    $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
179
    $resultat->free();
178
    $resultat->free();
180
}
179
}
181
 
180
 
182
//Gestion de l'erreur aucun site trouvable.
181
//Gestion de l'erreur aucun site trouvable.
183
if (! isset($_GEN_commun['info_site'])) {
182
if (! isset($_GEN_commun['info_site'])) {
184
    // Appel à l'application Installateur si nécessaire
183
    // Appel à l'application Installateur si nécessaire
185
    /** <br> Inclusion du programme Installateur de Papyrus.
184
    /** <br> Inclusion du programme Installateur de Papyrus.
186
    * L'abscence de site oblige à relancer l'installation et le script sql qui regénèrera la base de données.*/
185
    * L'abscence de site oblige à relancer l'installation et le script sql qui regénèrera la base de données.*/
187
    include_once GEN_CHEMIN_APPLICATION.'installateur/installateur.php';
186
    include_once GEN_CHEMIN_APPLICATION.'installateur/installateur.php';
188
    $_GEN_commun['sortie'] .= afficherContenuCorps();
187
    $_GEN_commun['sortie'] .= afficherContenuCorps();
189
    include_once GEN_CHEMIN_PAP.'pap_envoi.inc.php';
188
    include_once GEN_CHEMIN_PAP.'pap_envoi.inc.php';
190
    // Fin du programme Papyrus.
189
    // Fin du programme Papyrus.
191
    exit(0);
190
    exit(0);
192
} else if ($_GEN_commun['info_site']->gsr_id_valeur == 103) {
191
} else if ($_GEN_commun['info_site']->gsr_id_valeur == 103) {
193
    // Gestion de la redirection pour les sites "externes"
192
    // Gestion de la redirection pour les sites "externes"
194
    header('Location:'.$_GEN_commun['info_site']->gs_url);
193
    header('Location:'.$_GEN_commun['info_site']->gs_url);
195
    exit(0);
194
    exit(0);
196
}
195
}
197
 
196
 
198
// +------------------------------------------------------------------------------------------------------+
197
// +------------------------------------------------------------------------------------------------------+
199
// Gestion de l'internationalisation du site
198
// Gestion de l'internationalisation du site
200
 
199
 
201
// Nous recherchons la valeur de l'internationalisation du site passée dans l'url ou présente
200
// Nous recherchons la valeur de l'internationalisation du site passée dans l'url ou présente
202
// dans le navigateur du client. Si nous trouvons pas la langue dans l'url, récupération depuis
201
// dans le navigateur du client. Si nous trouvons pas la langue dans l'url, récupération depuis
203
// le navigateur et comparaison aux langues disponibles pour le site demandé.
202
// le navigateur et comparaison aux langues disponibles pour le site demandé.
204
// Initialisation de variable :
203
// Initialisation de variable :
205
$i18n = '';
204
$i18n = '';
206
// Nous recherchons les internationalisations disponibles pour le site demandé.
205
// Nous recherchons les internationalisations disponibles pour le site demandé.
207
// Si un site possède une traduction, il peut alors posséder des menus traduits.
206
// Si un site possède une traduction, il peut alors posséder des menus traduits.
208
$requete =  'SELECT gs_ce_i18n '.
207
$requete =  'SELECT gs_ce_i18n '.
209
            'FROM gen_site, gen_site_relation '.
208
            'FROM gen_site, gen_site_relation '.
210
            'WHERE gsr_id_site_01 = '.$_GEN_commun['info_site']->gs_id_site.' '.
209
            'WHERE gsr_id_site_01 = '.$_GEN_commun['info_site']->gs_id_site.' '.
211
            'AND gsr_id_site_02 = gs_id_site '.
210
            'AND gsr_id_site_02 = gs_id_site '.
212
            'AND gsr_id_valeur = 1 '.
211
            'AND gsr_id_valeur = 1 '.
213
            'ORDER BY gsr_ordre';
212
            'ORDER BY gsr_ordre';
214
 
213
 
215
$resultat = $db->query($requete);
214
$resultat = $db->query($requete);
216
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
215
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
217
 
216
 
218
// Récupération de la première valeur de langue d'un site.
217
// Récupération de la première valeur de langue d'un site.
219
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
218
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
220
 
219
 
221
if (! $ligne) {
220
if (! $ligne) {
222
    // Pas de traduction pour le site: nous regardons si le site possede une valeur d'i18n.
221
    // Pas de traduction pour le site: nous regardons si le site possede une valeur d'i18n.
223
    if (! empty($_GEN_commun['info_site']->gs_ce_i18n) ) {
222
    if (! empty($_GEN_commun['info_site']->gs_ce_i18n) ) {
224
        $i18n_possible = array($_GEN_commun['info_site']->gs_ce_i18n => true);
223
        $i18n_possible = array($_GEN_commun['info_site']->gs_ce_i18n => true);
225
    } else {
224
    } else {
226
        // Sinon utilisation de la valeur par défaut définit dans le fichier de config.
225
        // Sinon utilisation de la valeur par défaut définit dans le fichier de config.
227
        $i18n_possible = array(GEN_I18N_ID_DEFAUT => true);
226
        $i18n_possible = array(GEN_I18N_ID_DEFAUT => true);
228
    }
227
    }
229
    // Utilisation de la fonction statique de Pear HTTP pour négocier cette i18n.
228
    // Utilisation de la fonction statique de Pear HTTP pour négocier cette i18n.
230
    $i18n = HTTP::negotiateLanguage($i18n_possible, GEN_I18N_ID_DEFAUT);
229
    $i18n = HTTP::negotiateLanguage($i18n_possible, GEN_I18N_ID_DEFAUT);
231
} else {
230
} else {
232
    // La première traduction du site
231
    // La première traduction du site
233
    // peut être utilisé comme valeur par défaut.
232
    // peut être utilisé comme valeur par défaut.
234
    $i18n_site_url = $ligne->gs_ce_i18n;
233
    $i18n_site_url = $ligne->gs_ce_i18n;
235
    // Stockage des valeurs de l'i18n dans un tableau
234
    // Stockage des valeurs de l'i18n dans un tableau
236
    $aso_i18n_site = array();
235
    $aso_i18n_site = array();
237
    $aso_i18n_site[$_GEN_commun['info_site']->gs_ce_i18n] = true;
236
    $aso_i18n_site[$_GEN_commun['info_site']->gs_ce_i18n] = true;
238
    $aso_i18n_site[$ligne->gs_ce_i18n] = true;
237
    $aso_i18n_site[$ligne->gs_ce_i18n] = true;
239
    
238
    
240
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
239
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
241
        $aso_i18n_site[$ligne->gs_ce_i18n] = true;
240
        $aso_i18n_site[$ligne->gs_ce_i18n] = true;
242
    }
241
    }
243
    $resultat->free();
242
    $resultat->free();
244
    // Utilisation de la fonction statique de Pear HTTP pour négocier cette i18n.
243
    // Utilisation de la fonction statique de Pear HTTP pour négocier cette i18n.
245
    $i18n = HTTP::negotiateLanguage($aso_i18n_site, $i18n_site_url);
244
    $i18n = HTTP::negotiateLanguage($aso_i18n_site, $i18n_site_url);
246
}
245
}
247
// Nous stockons la valeur trouvé pour l'url demandée dans la variable globale de Génésia.
246
// Nous stockons la valeur trouvé pour l'url demandée dans la variable globale de Génésia.
248
$_GEN_commun['i18n'] = $i18n;
247
$_GEN_commun['i18n'] = $i18n;
249
 
248
 
250
// Recherche de la présence de la valeur d'i18n dans l'url
249
// Recherche de la présence de la valeur d'i18n dans l'url
251
if ( (! isset($_GET[GEN_URL_CLE_I18N])) || (empty($_GET[GEN_URL_CLE_I18N])) ) {
250
if ( (! isset($_GET[GEN_URL_CLE_I18N])) || (empty($_GET[GEN_URL_CLE_I18N])) ) {
252
    $_GEN_commun['url_i18n'] = '';
251
    $_GEN_commun['url_i18n'] = '';
253
} else {
252
} else {
254
    // L'i18n est trouvé dans l'url, nous écrasons donc la valeur i18n.
253
    // L'i18n est trouvé dans l'url, nous écrasons donc la valeur i18n.
255
    $_GEN_commun['url_i18n'] = $_GET[GEN_URL_CLE_I18N];
254
    $_GEN_commun['url_i18n'] = $_GET[GEN_URL_CLE_I18N];
256
    $_GEN_commun['i18n'] = $_GEN_commun['url_i18n'];
255
    $_GEN_commun['i18n'] = $_GEN_commun['url_i18n'];
257
}
256
}
258
 
257
 
259
// Nous récupérons des informations sur l'internationalisation
258
// Nous récupérons des informations sur l'internationalisation
260
$requete =  'SELECT * '.
259
$requete =  'SELECT * '.
261
            'FROM gen_i18n '.
260
            'FROM gen_i18n '.
262
            'WHERE gi_id_i18n = "'.$_GEN_commun['i18n'].'"';
261
            'WHERE gi_id_i18n = "'.$_GEN_commun['i18n'].'"';
263
 
262
 
264
$resultat = $db->query($requete);
263
$resultat = $db->query($requete);
265
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
264
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
266
 
265
 
267
$_GEN_commun['info_i18n'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
266
$_GEN_commun['info_i18n'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
268
$resultat->free();
267
$resultat->free();
269
 
268
 
270
//Gestion de l'erreur aucune internationalisation trouvable.
269
//Gestion de l'erreur aucune internationalisation trouvable.
271
if (empty($_GEN_commun['i18n'])) {
270
if (empty($_GEN_commun['i18n'])) {
272
    die('ERREUR Génésia : valeur internationalisation introuvable. <br />'.
271
    die('ERREUR Génésia : valeur internationalisation introuvable. <br />'.
273
        'Ligne n° : '. __LINE__ .'<br />'.
272
        'Ligne n° : '. __LINE__ .'<br />'.
274
        'Fichier : '. __FILE__ );
273
        'Fichier : '. __FILE__ );
275
}
274
}
276
 
275
 
277
// Récupération des informations sur la langue
276
// Récupération des informations sur la langue
278
$requete =  'SELECT * '.
277
$requete =  'SELECT * '.
279
            'FROM gen_i18n_langue '.
278
            'FROM gen_i18n_langue '.
280
            'WHERE gil_id_langue = "'.$_GEN_commun['info_i18n']->gi_ce_langue.'"';
279
            'WHERE gil_id_langue = "'.$_GEN_commun['info_i18n']->gi_ce_langue.'"';
281
 
280
 
282
$resultat = $db->query($requete);
281
$resultat = $db->query($requete);
283
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
282
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
284
 
283
 
285
$_GEN_commun['info_i18n_langue'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
284
$_GEN_commun['info_i18n_langue'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
286
$resultat->free();
285
$resultat->free();
287
 
286
 
288
// Récupération des informations sur le pays
287
// Récupération des informations sur le pays
289
$requete =  'SELECT * '.
288
$requete =  'SELECT * '.
290
            'FROM gen_i18n_pays '.
289
            'FROM gen_i18n_pays '.
291
            'WHERE gip_id_pays = "'.$_GEN_commun['info_i18n']->gi_ce_pays.'"';
290
            'WHERE gip_id_pays = "'.$_GEN_commun['info_i18n']->gi_ce_pays.'"';
292
 
291
 
293
$resultat = $db->query($requete);
292
$resultat = $db->query($requete);
294
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
293
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
295
 
294
 
296
$_GEN_commun['info_i18n_pays'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
295
$_GEN_commun['info_i18n_pays'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
297
$resultat->free();
296
$resultat->free();
298
 
297
 
299
// +------------------------------------------------------------------------------------------------------+
298
// +------------------------------------------------------------------------------------------------------+
300
// Gestion des menus
299
// Gestion des menus
301
 
300
 
302
// Nous vérifions le cas où le code du menu est introuvable dans l'url.
301
// Nous vérifions le cas où le code du menu est introuvable dans l'url.
303
if ( (! isset($_GET[GEN_URL_CLE_MENU])) || (empty($_GET[GEN_URL_CLE_MENU])) ) {
302
if ( (! isset($_GET[GEN_URL_CLE_MENU])) || (empty($_GET[GEN_URL_CLE_MENU])) ) {
304
    // Recherche du premier menu du site courant:
303
    // Recherche du premier menu du site courant:
305
    $requete =  'SELECT gen_menu.* '.
304
    $requete =  'SELECT gen_menu.* '.
306
                'FROM gen_menu, gen_menu_relation '.
305
                'FROM gen_menu, gen_menu_relation '.
307
                'WHERE gm_ce_site = '.$_GEN_commun['info_site']->gs_id_site.' '.
306
                'WHERE gm_ce_site = '.$_GEN_commun['info_site']->gs_id_site.' '.
308
                'AND gmr_id_menu_01 = gm_id_menu '.
307
                'AND gmr_id_menu_01 = gm_id_menu '.
309
                'AND gmr_id_menu_01 = gmr_id_menu_02 '.
308
                'AND gmr_id_menu_01 = gmr_id_menu_02 '.
310
                'AND gmr_id_valeur = 101 ';// 101 = menu par "defaut"
309
                'AND gmr_id_valeur = 101 ';// 101 = menu par "defaut"
311
    
310
    
312
    $resultat = $db->query($requete);
311
    $resultat = $db->query($requete);
313
    (DB::isError($resultat))
312
    (DB::isError($resultat))
314
        ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
313
        ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
315
        : '';
314
        : '';
316
    // Nous avons trouvé un menu "défaut" pour le site courant.
315
    // Nous avons trouvé un menu "défaut" pour le site courant.
317
    $_GEN_commun['info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
316
    $_GEN_commun['info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
318
    $resultat->free();
317
    $resultat->free();
319
    
318
    
320
    // Stockage du code du menu demandée dans la variable globale de Papyrus.
319
    // Stockage du code du menu demandée dans la variable globale de Papyrus.
321
    if (GEN_URL_ID_TYPE_MENU == 'int') {
320
    if (GEN_URL_ID_TYPE_MENU == 'int') {
322
        $_GEN_commun['url_menu'] = $_GEN_commun['info_menu']->gm_code_num;
321
        $_GEN_commun['url_menu'] = $_GEN_commun['info_menu']->gm_code_num;
323
    } else {
322
    } else {
324
        $_GEN_commun['url_menu'] = $_GEN_commun['info_menu']->gm_code_alpha;
323
        $_GEN_commun['url_menu'] = $_GEN_commun['info_menu']->gm_code_alpha;
325
    }
324
    }
326
} else if (! isset($_GET['url_menu']) && empty($_GEN_commun['url_menu'])) {
325
} else if (! isset($_GET['url_menu']) && empty($_GEN_commun['url_menu'])) {
327
    // Le code du menu est présent dans l'url et il n'a pas encore été récupéré
326
    // Le code du menu est présent dans l'url et il n'a pas encore été récupéré
328
    // Nous le récupérons dans la variable globale de Papyrus.
327
    // Nous le récupérons dans la variable globale de Papyrus.
329
    $_GEN_commun['url_menu'] = $_GET[GEN_URL_CLE_MENU];
328
    $_GEN_commun['url_menu'] = $_GET[GEN_URL_CLE_MENU];
330
    
329
    
331
    // Récupération des informations sur le menu demandé
330
    // Récupération des informations sur le menu demandé
332
    $requete = 'SELECT * '.
331
    $requete = 'SELECT * '.
333
                'FROM gen_menu '.
332
                'FROM gen_menu '.
334
                'WHERE ';
333
                'WHERE ';
335
    $requete .= (GEN_URL_ID_TYPE_MENU == 'int')
334
    $requete .= (GEN_URL_ID_TYPE_MENU == 'int')
336
        ? 'gm_code_num = '.$_GEN_commun['url_menu']
335
        ? 'gm_code_num = '.$_GEN_commun['url_menu']
337
        : 'gm_code_alpha = "'.$_GEN_commun['url_menu'].'"';
336
        : 'gm_code_alpha = "'.$_GEN_commun['url_menu'].'"';
338
    
337
    
339
    $resultat = $db->query($requete);
338
    $resultat = $db->query($requete);
340
    (DB::isError($resultat))
339
    (DB::isError($resultat))
341
        ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
340
        ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
342
        : '';
341
        : '';
343
    
342
    
344
    $_GEN_commun['info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
343
    $_GEN_commun['info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
345
    $resultat->free();
344
    $resultat->free();
346
}
345
}
347
 
346
 
348
// +------------------------------------------------------------------------------------------------------+
347
// +------------------------------------------------------------------------------------------------------+
349
// Gestion des traductions
348
// Gestion des traductions
350
 
349
 
351
// Si le résultat de la négociation de l'internationalisation donne une langue différente
350
// Si le résultat de la négociation de l'internationalisation donne une langue différente
352
//  de celle du site principal, nous récupérons les éventuelles valeurs traduite pour le site.
351
//  de celle du site principal, nous récupérons les éventuelles valeurs traduite pour le site.
353
if ($_GEN_commun['i18n'] != $_GEN_commun['info_site']->gs_ce_i18n) {
352
if ($_GEN_commun['i18n'] != $_GEN_commun['info_site']->gs_ce_i18n) {
354
    // Récupération des informations sur la traduction du site
353
    // Récupération des informations sur la traduction du site
355
    $requete =  'SELECT * '.
354
    $requete =  'SELECT * '.
356
                'FROM gen_site '.
355
                'FROM gen_site '.
357
                'WHERE gs_ce_i18n = "'.$_GEN_commun['i18n'].'" '.
356
                'WHERE gs_ce_i18n = "'.$_GEN_commun['i18n'].'" '.
358
                'AND gs_code_alpha = "'.$_GEN_commun['info_site']->gs_code_alpha.'"';
357
                'AND gs_code_alpha = "'.$_GEN_commun['info_site']->gs_code_alpha.'"';
359
    
358
    
360
    $resultat = $db->query($requete);
359
    $resultat = $db->query($requete);
361
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
360
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
362
    
361
    
363
    // Nous crééons l'entrée 'traduction_info_site' dans _GEN_commun que si nous avons bien trouvé une 
362
    // Nous crééons l'entrée 'traduction_info_site' dans _GEN_commun que si nous avons bien trouvé une 
364
    // traduction pour le site. Il faut donc tester l'existence de cette entrée avant de l'utiliser.
363
    // traduction pour le site. Il faut donc tester l'existence de cette entrée avant de l'utiliser.
365
    if ($resultat->numRows() > 0) {
364
    if ($resultat->numRows() > 0) {
366
        $_GEN_commun['traduction_info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
365
        $_GEN_commun['traduction_info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
367
    }
366
    }
368
    $resultat->free();
367
    $resultat->free();
369
}
368
}
370
 
369
 
371
// Si le résultat de la négociation de l'internationalisation donne une langue différente
370
// Si le résultat de la négociation de l'internationalisation donne une langue différente
372
//  de celle du menu, nous récupérons les éventuelles valeurs traduite pour le menu.
371
//  de celle du menu, nous récupérons les éventuelles valeurs traduite pour le menu.
373
if ($_GEN_commun['i18n'] != $_GEN_commun['info_menu']->gm_ce_i18n) {
372
if ($_GEN_commun['i18n'] != $_GEN_commun['info_menu']->gm_ce_i18n) {
374
    // Récupération des informations sur la traduction du menu
373
    // Récupération des informations sur la traduction du menu
375
    $requete =  'SELECT * '.
374
    $requete =  'SELECT * '.
376
                'FROM gen_menu '.
375
                'FROM gen_menu '.
377
                'WHERE gm_ce_i18n = "'.$_GEN_commun['i18n'].'" '.
376
                'WHERE gm_ce_i18n = "'.$_GEN_commun['i18n'].'" '.
378
                'AND gm_code_alpha = "'.$_GEN_commun['info_menu']->gm_code_alpha.'"';
377
                'AND gm_code_alpha = "'.$_GEN_commun['info_menu']->gm_code_alpha.'"';
379
    
378
    
380
    $resultat = $db->query($requete);
379
    $resultat = $db->query($requete);
381
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
380
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
382
    
381
    
383
    // Nous crééons l'entrée 'traduction_info_menu' dans _GEN_commun que si nous avons bien trouvé une 
382
    // Nous crééons l'entrée 'traduction_info_menu' dans _GEN_commun que si nous avons bien trouvé une 
384
    // traduction pour le menu. Il faut donc tester l'existence de cette entrée avant de l'utiliser.
383
    // traduction pour le menu. Il faut donc tester l'existence de cette entrée avant de l'utiliser.
385
    if ($resultat->numRows() > 0) {
384
    if ($resultat->numRows() > 0) {
386
        $_GEN_commun['traduction_info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
385
        $_GEN_commun['traduction_info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
387
    }
386
    }
388
    $resultat->free();
387
    $resultat->free();
389
}
388
}
390
 
389
 
391
// +------------------------------------------------------------------------------------------------------+
390
// +------------------------------------------------------------------------------------------------------+
392
// Gestion de l'application du menu demandé.
391
// Gestion de l'application du menu demandé.
393
 
392
 
394
// Recherche de la première application liée
393
// Recherche de la première application liée
395
if (isset($_GEN_commun['info_menu']->gm_id_menu)) {
394
if (isset($_GEN_commun['info_menu']->gm_id_menu)) {
396
    $info_appli_menu = GEN_donnerIdPremiereApplicationLiee($_GEN_commun['info_menu']->gm_id_menu);
395
    $info_appli_menu = GEN_donnerIdPremiereApplicationLiee($_GEN_commun['info_menu']->gm_id_menu);
397
    if (is_array($info_appli_menu)) {
396
    if (is_array($info_appli_menu)) {
398
        $id_application = $info_appli_menu['gm_ce_application'];
397
        $id_application = $info_appli_menu['gm_ce_application'];
399
        $id_menu_actif = $info_appli_menu['gm_id_menu'];
398
        $id_menu_actif = $info_appli_menu['gm_id_menu'];
400
        
399
        
401
        // Si le menu n'a pas d'application lié, on recalcule l'objet $_GEN_commun['info_menu']
400
        // Si le menu n'a pas d'application lié, on recalcule l'objet $_GEN_commun['info_menu']
402
        if ($id_menu_actif != $_GEN_commun['info_menu']->gm_id_menu) {
401
        if ($id_menu_actif != $_GEN_commun['info_menu']->gm_id_menu) {
403
            $requete =  'SELECT gen_menu.* '.
402
            $requete =  'SELECT gen_menu.* '.
404
                        'FROM gen_menu '.
403
                        'FROM gen_menu '.
405
                        'WHERE gm_id_menu = '.$id_menu_actif;
404
                        'WHERE gm_id_menu = '.$id_menu_actif;
406
            
405
            
407
            $resultat = $db->query($requete);
406
            $resultat = $db->query($requete);
408
            (DB::isError($resultat))
407
            (DB::isError($resultat))
409
                ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
408
                ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
410
                : '';
409
                : '';
411
            // Nous avons trouvé un menu "défaut" pour le site courant.
410
            // Nous avons trouvé un menu "défaut" pour le site courant.
412
            $_GEN_commun['info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
411
            $_GEN_commun['info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
413
            $resultat->free();
412
            $resultat->free();
414
        }
413
        }
415
        
414
        
416
        
415
        
417
        // Recherche des informations sur l'application liée
416
        // Recherche des informations sur l'application liée
418
        $requete_applicaton =   'SELECT * '.
417
        $requete_applicaton =   'SELECT * '.
419
                                'FROM gen_application '.
418
                                'FROM gen_application '.
420
                                'WHERE gap_id_application = '.$id_application;
419
                                'WHERE gap_id_application = '.$id_application;
421
        
420
        
422
        $resultat_applicaton = $db->query($requete_applicaton);
421
        $resultat_applicaton = $db->query($requete_applicaton);
423
        (DB::isError($resultat_applicaton))
422
        (DB::isError($resultat_applicaton))
424
            ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_applicaton->getMessage(), $requete_applicaton))
423
            ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_applicaton->getMessage(), $requete_applicaton))
425
            : '';
424
            : '';
426
        
425
        
427
        $_GEN_commun['info_application'] = $resultat_applicaton->fetchRow(DB_FETCHMODE_OBJECT) ;
426
        $_GEN_commun['info_application'] = $resultat_applicaton->fetchRow(DB_FETCHMODE_OBJECT) ;
428
        $resultat_applicaton->free();
427
        $resultat_applicaton->free();
429
    } else {
428
    } else {
430
        // Gestion des erreurs sur la recherche de l'application liée.
429
        // Gestion des erreurs sur la recherche de l'application liée.
431
        // Finalement il a été décidé de ne pas afficher cette information sous la forme d'erreur.
430
        // Finalement il a été décidé de ne pas afficher cette information sous la forme d'erreur.
432
        //trigger_error('application du menu demandée introuvable', E_USER_NOTICE);
431
        //trigger_error('application du menu demandée introuvable', E_USER_NOTICE);
433
    }
432
    }
434
}
433
}
435
 
434
 
436
// +------------------------------------------------------------------------------------------------------+
435
// +------------------------------------------------------------------------------------------------------+
437
// Gestion des arguments de l'application
436
// Gestion des arguments de l'application
438
 
437
 
439
if (isset($_GEN_commun['info_menu']->gm_application_arguments)) {
438
if (isset($_GEN_commun['info_menu']->gm_application_arguments)) {
440
    $arguments = explode(' ', $_GEN_commun['info_menu']->gm_application_arguments);
439
    $arguments = explode(' ', $_GEN_commun['info_menu']->gm_application_arguments);
441
    
440
    
442
    // Initialisaton de la variable globale $GS_ARGUMENTS
441
    // Initialisaton de la variable globale $GS_ARGUMENTS
443
    $_GEN_commun['info_application']->cache = false;
442
    $_GEN_commun['info_application']->cache = false;
444
    $_GEN_commun['info_application']->cache_duree = 0;
443
    $_GEN_commun['info_application']->cache_duree = 0;
445
    
444
    
446
    for ($i = 0; $i < count($arguments); $i++) {
445
    for ($i = 0; $i < count($arguments); $i++) {
447
        $attr = explode('=', $arguments[$i]);
446
        $attr = explode('=', $arguments[$i]);
448
        
447
        
449
        if ($attr[0] == 'cache_duree') {
448
        if ($attr[0] == 'cache_duree') {
450
            $_GEN_commun['info_application']->cache_duree = $attr[1];
449
            $_GEN_commun['info_application']->cache_duree = $attr[1];
451
            if ($_GEN_commun['info_application']->cache_duree > 0) {
450
            if ($_GEN_commun['info_application']->cache_duree > 0) {
452
                $_GEN_commun['info_application']->cache = true;
451
                $_GEN_commun['info_application']->cache = true;
453
            }
452
            }
454
        } else if ($attr[0] != '') {
453
        } else if ($attr[0] != '') {
455
            $_GEN_commun['info_application']->$attr[0] = (isset($attr[1]) ? $attr[1] : '');
454
            $_GEN_commun['info_application']->$attr[0] = (isset($attr[1]) ? $attr[1] : '');
456
        }
455
        }
457
    }
456
    }
458
}
457
}
459
 
458
 
460
// +------------------------------------------------------------------------------------------------------+
459
// +------------------------------------------------------------------------------------------------------+
461
// Gestion des applettes
460
// Gestion des applettes
462
 
461
 
463
$requete =  'SELECT * '.
462
$requete =  'SELECT * '.
464
            'FROM gen_application '.
463
            'FROM gen_application '.
465
            'WHERE gap_bool_applette = 1 ';
464
            'WHERE gap_bool_applette = 1 ';
466
$resultat = $_GEN_commun['pear_db']->query($requete);
465
$resultat = $_GEN_commun['pear_db']->query($requete);
467
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
466
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
468
 
467
 
469
$_GEN_commun['info_applette'] = array();
468
$_GEN_commun['info_applette'] = array();
470
$i = 0;
469
$i = 0;
471
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
470
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
472
    $_GEN_commun['info_applette'][$i] = $ligne;
471
    $_GEN_commun['info_applette'][$i] = $ligne;
473
    $i++;
472
    $i++;
474
}
473
}
475
$resultat->free();
474
$resultat->free();
476
 
475
 
477
// +------------------------------------------------------------------------------------------------------+
476
// +------------------------------------------------------------------------------------------------------+
478
// Gestion de l'objet URL
477
// Gestion de l'objet URL
479
 
478
 
480
$_GEN_commun['url'] = & new Net_URL('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
479
$_GEN_commun['url'] = & new Net_URL('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
481
 
480
 
482
if ( (isset($_GEN_commun['url_site'])) && (!empty($_GEN_commun['url_site'])) ) {
481
if ( (isset($_GEN_commun['url_site'])) && (!empty($_GEN_commun['url_site'])) ) {
483
    $_GEN_commun['url']->addQueryString(GEN_URL_CLE_SITE, $_GEN_commun['url_site']);
482
    $_GEN_commun['url']->addQueryString(GEN_URL_CLE_SITE, $_GEN_commun['url_site']);
484
}
483
}
485
 
484
 
486
if ( (isset($_GEN_commun['url_menu'])) && (!empty($_GEN_commun['url_menu'])) ) {
485
if ( (isset($_GEN_commun['url_menu'])) && (!empty($_GEN_commun['url_menu'])) ) {
487
    $_GEN_commun['url']->addQueryString(GEN_URL_CLE_MENU, $_GEN_commun['url_menu']);
486
    $_GEN_commun['url']->addQueryString(GEN_URL_CLE_MENU, $_GEN_commun['url_menu']);
488
}
487
}
489
 
488
 
490
if ( (isset($_GEN_commun['url_i18n'])) && (!empty($_GEN_commun['url_i18n'])) ) {
489
if ( (isset($_GEN_commun['url_i18n'])) && (!empty($_GEN_commun['url_i18n'])) ) {
491
    $_GEN_commun['url']->addQueryString(GEN_URL_CLE_I18N, $_GEN_commun['url_i18n']);
490
    $_GEN_commun['url']->addQueryString(GEN_URL_CLE_I18N, $_GEN_commun['url_i18n']);
492
}
491
}
493
 
492
 
494
if ( (isset($_GET[GEN_URL_CLE_DATE])) && (!empty($_GET[GEN_URL_CLE_DATE])) ) {
493
if ( (isset($_GET[GEN_URL_CLE_DATE])) && (!empty($_GET[GEN_URL_CLE_DATE])) ) {
495
    $_GEN_commun['url_date'] = $_GET[GEN_URL_CLE_DATE];
494
    $_GEN_commun['url_date'] = $_GET[GEN_URL_CLE_DATE];
496
    $_GEN_commun['url']->addQueryString(GEN_URL_CLE_DATE, $_GEN_commun['url_date']);
495
    $_GEN_commun['url']->addQueryString(GEN_URL_CLE_DATE, $_GEN_commun['url_date']);
497
}
496
}
498
 
497
 
499
if ( (isset($_GET[GEN_URL_CLE_FORMAT])) && (!empty($_GET[GEN_URL_CLE_FORMAT])) ) {
498
if ( (isset($_GET[GEN_URL_CLE_FORMAT])) && (!empty($_GET[GEN_URL_CLE_FORMAT])) ) {
500
    $_GEN_commun['url_format'] = $_GET[GEN_URL_CLE_FORMAT];
499
    $_GEN_commun['url_format'] = $_GET[GEN_URL_CLE_FORMAT];
501
    $_GEN_commun['url']->addQueryString(GEN_URL_CLE_DATE, $_GEN_commun['url_format']);
500
    $_GEN_commun['url']->addQueryString(GEN_URL_CLE_DATE, $_GEN_commun['url_format']);
502
}
501
}
503
 
502
 
504
/* +--Fin du code ---------------------------------------------------------------------------------------+
503
/* +--Fin du code ---------------------------------------------------------------------------------------+
505
* $Log: not supported by cvs2svn $
504
* $Log: not supported by cvs2svn $
-
 
505
* Revision 1.17  2005/02/23 15:35:04  jpm
-
 
506
* L'erreur "pas d'application" a été supprimé une message dans le corps du texte fourni déjà cette information.
-
 
507
*
506
* Revision 1.16  2005/02/17 17:51:40  florian
508
* Revision 1.16  2005/02/17 17:51:40  florian
507
* Correction bug monde sans menu ni appli
509
* Correction bug monde sans menu ni appli
508
*
510
*
509
* Revision 1.15  2004/12/06 12:12:28  jpm
511
* Revision 1.15  2004/12/06 12:12:28  jpm
510
* Début de gestion des auth multiples.
512
* Début de gestion des auth multiples.
511
*
513
*
512
* Revision 1.14  2004/11/15 17:14:09  jpm
514
* Revision 1.14  2004/11/15 17:14:09  jpm
513
* Gestion des url avec seulement le code d'un menu.
515
* Gestion des url avec seulement le code d'un menu.
514
*
516
*
515
* Revision 1.13  2004/11/03 17:14:38  jpm
517
* Revision 1.13  2004/11/03 17:14:38  jpm
516
* Gestion des sites externes.
518
* Gestion des sites externes.
517
*
519
*
518
* Revision 1.12  2004/10/26 18:42:21  jpm
520
* Revision 1.12  2004/10/26 18:42:21  jpm
519
* Gestion des sites externes.
521
* Gestion des sites externes.
520
*
522
*
521
* Revision 1.11  2004/10/25 16:28:47  jpm
523
* Revision 1.11  2004/10/25 16:28:47  jpm
522
* Ajout de nouvelles balises Papyrus, ajout vérification mise à jour de Papyrus, meilleure gestion des sessions...
524
* Ajout de nouvelles balises Papyrus, ajout vérification mise à jour de Papyrus, meilleure gestion des sessions...
523
*
525
*
524
* Revision 1.10  2004/10/22 17:23:59  jpm
526
* Revision 1.10  2004/10/22 17:23:59  jpm
525
* Début amélioration de la gestion des erreurs et de l'installation.
527
* Début amélioration de la gestion des erreurs et de l'installation.
526
*
528
*
527
* Revision 1.9  2004/10/15 18:29:19  jpm
529
* Revision 1.9  2004/10/15 18:29:19  jpm
528
* Modif pour gérer l'appli installateur de Papyrus.
530
* Modif pour gérer l'appli installateur de Papyrus.
529
*
531
*
530
* Revision 1.8  2004/09/23 14:30:53  jpm
532
* Revision 1.8  2004/09/23 14:30:53  jpm
531
* Correction bogue sur les menus.
533
* Correction bogue sur les menus.
532
*
534
*
533
* Revision 1.7  2004/09/23 10:46:46  jpm
535
* Revision 1.7  2004/09/23 10:46:46  jpm
534
* Amélioration de la gestion du menu actif quand un menu n'a pas d'application liée.
536
* Amélioration de la gestion du menu actif quand un menu n'a pas d'application liée.
535
*
537
*
536
* Revision 1.6  2004/09/10 16:38:34  jpm
538
* Revision 1.6  2004/09/10 16:38:34  jpm
537
* Ajout de l'initialisation d'une variable stockant les infos de débogage.
539
* Ajout de l'initialisation d'une variable stockant les infos de débogage.
538
*
540
*
539
* Revision 1.5  2004/06/30 07:35:16  jpm
541
* Revision 1.5  2004/06/30 07:35:16  jpm
540
* Correction d'un bogue du à une mauvaise gestion de la résolution des conflits entre fichier CVS.
542
* Correction d'un bogue du à une mauvaise gestion de la résolution des conflits entre fichier CVS.
541
*
543
*
542
* Revision 1.4  2004/06/30 07:25:37  jpm
544
* Revision 1.4  2004/06/30 07:25:37  jpm
543
* Ajout d'un commentaire.
545
* Ajout d'un commentaire.
544
*
546
*
545
* Revision 1.3  2004/06/18 15:52:45  alex
547
* Revision 1.3  2004/06/18 15:52:45  alex
546
* Actualisation de la variable $_GEN_commun['info_menu'] lorsque un menu n'a pas d'application lié
548
* Actualisation de la variable $_GEN_commun['info_menu'] lorsque un menu n'a pas d'application lié
547
*
549
*
548
* Revision 1.2  2004/06/17 07:03:01  jpm
550
* Revision 1.2  2004/06/17 07:03:01  jpm
549
* Correction d'un bogue concernant l'internationalisation par défaut quand la langue du navigateur ne correspond pas à celle du site.
551
* Correction d'un bogue concernant l'internationalisation par défaut quand la langue du navigateur ne correspond pas à celle du site.
550
*
552
*
551
* Revision 1.1  2004/06/16 08:13:20  jpm
553
* Revision 1.1  2004/06/16 08:13:20  jpm
552
* Changement de nom de Génésia en Papyrus.
554
* Changement de nom de Génésia en Papyrus.
553
* Changement de l'arborescence.
555
* Changement de l'arborescence.
554
*
556
*
555
* Revision 1.24  2004/05/05 14:33:37  jpm
557
* Revision 1.24  2004/05/05 14:33:37  jpm
556
* Gestion de l'indication de langue dans l'url.
558
* Gestion de l'indication de langue dans l'url.
557
* Utile que si on veut forcer la langue.
559
* Utile que si on veut forcer la langue.
558
*
560
*
559
* Revision 1.23  2004/05/05 10:42:35  jpm
561
* Revision 1.23  2004/05/05 10:42:35  jpm
560
* Amélioration de la gestion de l'internationalisation.
562
* Amélioration de la gestion de l'internationalisation.
561
*
563
*
562
* Revision 1.22  2004/05/04 16:17:05  jpm
564
* Revision 1.22  2004/05/04 16:17:05  jpm
563
* Légère amélioration du code (libération de ressource).
565
* Légère amélioration du code (libération de ressource).
564
 
566
 
565
 de ressource).
567
 de ressource).
566
*
568
*
567
* Revision 1.21  2004/05/03 11:21:58  jpm
569
* Revision 1.21  2004/05/03 11:21:58  jpm
568
* Fin de la gestion des applettes et suppression de l'info_menu_hierarchie de _GEN_commun.
570
* Fin de la gestion des applettes et suppression de l'info_menu_hierarchie de _GEN_commun.
569
* Ajout de la récupération d'une info sur la hiérarchie.
571
* Ajout de la récupération d'une info sur la hiérarchie.
570
* Surement à supprimer car inutile.
572
* Surement à supprimer car inutile.
571
* Ajout de la récupération d'une info sur la hiérarchie.
573
* Ajout de la récupération d'une info sur la hiérarchie.
572
* Surement à supprimer car inutile.
574
* Surement à supprimer car inutile.
573
* Changement du modèle de la base de données.
575
* Changement du modèle de la base de données.
574
* Revision 1.19  2004/04/28 12:04:31  jpm
576
* Revision 1.19  2004/04/28 12:04:31  jpm
575
* Changement du modèle de la base de données.
577
* Changement du modèle de la base de données.
576
*
578
*
577
* Revision 1.18  2004/04/22 08:28:12  jpm
579
* Revision 1.18  2004/04/22 08:28:12  jpm
578
* Transformation de $GS_GLOBAL en $_GEN_commun.
580
* Transformation de $GS_GLOBAL en $_GEN_commun.
579
*
581
*
580
* Revision 1.17  2004/04/09 16:43:32  jpm
582
* Revision 1.17  2004/04/09 16:43:32  jpm
581
* Suppression d'un blanc.
583
* Suppression d'un blanc.
582
* Récupération de la création de l'objet URL.
584
* Récupération de la création de l'objet URL.
583
* Revision 1.16  2004/04/09 16:20:11  jpm
585
* Revision 1.16  2004/04/09 16:20:11  jpm
584
* Récupération de la création de l'objet URL.
586
* Récupération de la création de l'objet URL.
585
* Gestion des tables i18n.
587
* Gestion des tables i18n.
586
* Utilisation de la classe Pear HTTP pour la négociation du langage à utiliser pour le site.
588
* Utilisation de la classe Pear HTTP pour la négociation du langage à utiliser pour le site.
587
* Revision 1.15  2004/04/05 16:37:43  jpm
589
* Revision 1.15  2004/04/05 16:37:43  jpm
588
* Utilisation de la classe Pear HTTP pour la négociation du langage à utiliser pour le site.
590
* Utilisation de la classe Pear HTTP pour la négociation du langage à utiliser pour le site.
589
* Déplacement dans le fichier gen_initialisation_pear.inc.php de la création des objets Pear Net_URL et Auth.
591
* Déplacement dans le fichier gen_initialisation_pear.inc.php de la création des objets Pear Net_URL et Auth.
590
* Revision 1.14  2004/04/02 16:29:30  jpm
592
* Revision 1.14  2004/04/02 16:29:30  jpm
591
* Déplacement dans le fichier gen_initialisation_pear.inc.php de la création des objets Pear Net_URL et Auth.
593
* Déplacement dans le fichier gen_initialisation_pear.inc.php de la création des objets Pear Net_URL et Auth.
592
*
594
*
593
* Revision 1.13  2004/04/01 11:27:13  jpm
595
* Revision 1.13  2004/04/01 11:27:13  jpm
594
* Ajout et modification de commentaires pour PhpDocumentor.
596
* Ajout et modification de commentaires pour PhpDocumentor.
595
* Prise en compte du nouveau modèle de Génésia révision 1.9.
597
* Prise en compte du nouveau modèle de Génésia révision 1.9.
596
* Revision 1.12  2004/03/31 16:50:04  jpm
598
* Revision 1.12  2004/03/31 16:50:04  jpm
597
* Prise en compte du nouveau modèle de Papyrus révision 1.9.
599
* Prise en compte du nouveau modèle de Papyrus révision 1.9.
598
* Déplacement des fonctions de gestion d'erreur dans la bibliotheque de l'application Installateur.
600
* Déplacement des fonctions de gestion d'erreur dans la bibliotheque de l'application Installateur.
599
* Modification des commentaires vis à vis du nouveau modèle.
601
* Modification des commentaires vis à vis du nouveau modèle.
600
* Déplacement des fonctions de gestion d'erreur dans la bibliotheque de l'application Installateur.
602
* Déplacement des fonctions de gestion d'erreur dans la bibliotheque de l'application Installateur.
601
* Suppression de l'attribution d'une configuration par défaut.
603
* Suppression de l'attribution d'une configuration par défaut.
602
* Changement et simplification des noms des variables globales.
604
* Changement et simplification des noms des variables globales.
603
* Traduction en français de certaines variables et partie de code.
605
* Traduction en français de certaines variables et partie de code.
604
* Remplacement de variable par des constante provenant du fichier de configuration.
606
* Remplacement de variable par des constante provenant du fichier de configuration.
605
* Traduction en français de certaines variables et partie de code.
607
* Traduction en français de certaines variables et partie de code.
606
* Mise en forme requête sql.
608
* Mise en forme requête sql.
607
* Revision 1.10  2004/03/24 07:20:03  jpm
609
* Revision 1.10  2004/03/24 07:20:03  jpm
608
* Mise en forme requête sql.
610
* Mise en forme requête sql.
609
* Ajout de commentaire dans l'entête.
611
* Ajout de commentaire dans l'entête.
610
* Mise en conformité avec la convention de codage.
612
* Mise en conformité avec la convention de codage.
611
* Ajout de commentaire dans l'entête.
613
* Ajout de commentaire dans l'entête.
612
* Mise en conformité avec la convention de codage.
614
* Mise en conformité avec la convention de codage.
613
*
615
*
614
* Revision 1.8  2004/03/23 16:31:54  jpm
616
* Revision 1.8  2004/03/23 16:31:54  jpm
615
* Ajout du code provenant de gen_noyau.inc.php.
617
* Ajout du code provenant de gen_noyau.inc.php.
616
* Ajout, formatage et traduction des commentaires.
618
* Ajout, formatage et traduction des commentaires.
617
*
619
*
618
* Amélioration de la conformité avec la convention de codage.
620
* Amélioration de la conformité avec la convention de codage.
619
* Changement requête sql pour le nouveau modèle de Génésia.
621
* Changement requête sql pour le nouveau modèle de Génésia.
620
* Amélioration de la conformité avec la convention de codage.
622
* Amélioration de la conformité avec la convention de codage.
621
* Changement requête sql pour le nouveau modèle de Papyrus.
623
* Changement requête sql pour le nouveau modèle de Papyrus.
622
*
624
*
623
* Correction des requêtes sql pour mise en conformité avec le nouveau modèle de Génésia et la convention de codage.
625
* Correction des requêtes sql pour mise en conformité avec le nouveau modèle de Génésia et la convention de codage.
624
* Ajout de commentaires et mise en forme.
626
* Ajout de commentaires et mise en forme.
625
* Correction des requêtes sql pour mise en conformité avec le nouveau modèle de Papyrus et la convention de codage.
627
* Correction des requêtes sql pour mise en conformité avec le nouveau modèle de Papyrus et la convention de codage.
626
*
628
*
627
* Revision 1.5  2003/12/16 16:57:59  alex
629
* Revision 1.5  2003/12/16 16:57:59  alex
628
* mise à jour pour compatibilité avec genesia
630
* mise à jour pour compatibilité avec genesia
629
* Ajout de commentaires et début de mise en conformité
631
* Ajout de commentaires et début de mise en conformité
630
* Revision 1.4  2003/11/24 16:05:02  jpm
632
* Revision 1.4  2003/11/24 16:05:02  jpm
631
* Ajout de commentaires et début de mise en conformité
633
* Ajout de commentaires et début de mise en conformité
632
* avec la convention de codage.
634
* avec la convention de codage.
633
*
635
*
634
*
636
*
635
* +--Fin du code ----------------------------------------------------------------------------------------+
637
* +--Fin du code ----------------------------------------------------------------------------------------+
636
*/
638
*/
637
?>
639
?>