Subversion Repositories Applications.papyrus

Rev

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

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