Subversion Repositories Applications.papyrus

Rev

Rev 93 | Rev 117 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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