Subversion Repositories Applications.papyrus

Rev

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

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