Subversion Repositories Applications.papyrus

Rev

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

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