Subversion Repositories Applications.papyrus

Rev

Rev 112 | Rev 159 | 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) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
7
// +------------------------------------------------------------------------------------------------------+
8
// | This library is free software; you can redistribute it and/or                                        |
9
// | modify it under the terms of the GNU Lesser General Public                                           |
10
// | License as published by the Free Software Foundation; either                                         |
11
// | version 2.1 of the License, or (at your option) any later version.                                   |
12
// |                                                                                                      |
13
// | This library is distributed in the hope that it will be useful,                                      |
14
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
15
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
16
// | Lesser General Public License for more details.                                                      |
17
// |                                                                                                      |
18
// | You should have received a copy of the GNU Lesser General Public                                     |
19
// | License along with this library; if not, write to the Free Software                                  |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// +------------------------------------------------------------------------------------------------------+
118 jpm 22
// CVS : $Id: pap_rendu.inc.php,v 1.5 2004-10-26 18:42:54 jpm Exp $
5 jpm 23
/**
24
* Rendu : programme traitant l'url demandée et retournant la page compressé au navigateur.
25
*
26
* Ce programme contient la partie collectant les informations sur la page demandée par le navigateur client.
27
* Elle vérifie que la page ne soit pas déjà présente en cache et la renvoie si elle est disponible.
28
* Elle recherche ensuite l'application liée à la page demandée. Elle exécute cette application et récupère le
29
* contenu XHTML à afficher, le stocke en cache, le compresse et le renvoi au navigateur client.
30
*
31
*@package Papyrus
32
//Auteur original :
33
*@author        Laurent COUDOUNEAU <laurent.coudouneau@ema.fr>
34
//Autres auteurs :
35
*@author        Alexandre GRANIER <alexadandre@tela-botanica.org>
36
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
37
*@copyright     Tela-Botanica 2000-2004
118 jpm 38
*@version       $Revision: 1.5 $ $Date: 2004-10-26 18:42:54 $
5 jpm 39
// +------------------------------------------------------------------------------------------------------+
40
*/
41
 
42
// +------------------------------------------------------------------------------------------------------+
43
// |                                            ENTÊTE du PROGRAMME                                       |
44
// +------------------------------------------------------------------------------------------------------+
45
 
46
/** <BR> Inclusion de la bibliothèque de fonctions servant à l'insertion de meta informations pour une page donnée.*/
14 jpm 47
include_once GEN_CHEMIN_BIBLIO.'pap_meta.fonct.php';
5 jpm 48
 
49
/** <BR> Inclusion de la bibliothèque de fonctions servant à l'insertion de styles pour une page donnée.*/
14 jpm 50
include_once GEN_CHEMIN_BIBLIO.'pap_style.fonct.php';
5 jpm 51
 
52
/** <BR> Inclusion de la bibliothèque de fonctions servant à l'insertion de scripts pour une page donnée.*/
14 jpm 53
include_once GEN_CHEMIN_BIBLIO.'pap_script.fonct.php';
5 jpm 54
 
55
// +------------------------------------------------------------------------------------------------------+
56
// |                                            CORPS du PROGRAMME                                        |
57
// +------------------------------------------------------------------------------------------------------+
58
 
59
// +------------------------------------------------------------------------------------------------------+
60
// Recherche du squelette de la page demandée.
61
 
62
// Ouverture du squelette
63
if (empty($_GEN_commun['info_menu']->gm_fichier_squelette)) {
64
    if (isset($_GEN_commun['traduction_info_site'])) {
65
        $chemin_squelette = $_GEN_commun['traduction_info_site']->gs_fichier_squelette;
66
    } else {
67
        $chemin_squelette = $_GEN_commun['info_site']->gs_fichier_squelette;
68
    }
69
} else {
70
    if (isset($_GEN_commun['traduction_info_menu'])) {
71
        $chemin_squelette = $_GEN_commun['traduction_info_menu']->gs_fichier_squelette;
72
    } else {
73
        $chemin_squelette = $_GEN_commun['info_menu']->gm_fichier_squelette;
74
    }
75
}
76
// Si l'information concernant le chemin est réellement un chemin
77
if (! file_exists($chemin_squelette)) {
78
    //Si ce n'est qu'un nom de fichier squelette
79
    $chemin_test =  GEN_CHEMIN_SITES.
80
                    $_GEN_commun['info_site']->gs_code_alpha.'/'.
81
                    $_GEN_commun['i18n'].'/'.GEN_DOSSIER_SQUELETTE.'/'.$chemin_squelette;
82
    if (! file_exists($chemin_test)) {
83
        die('ERREUR Génésia : Impossible de trouver de fichier de squelette. <br />'.
84
            'Chemin fichier squelette : '.$chemin_squelette.' <br />'.
85
            'Ligne n° : '. __LINE__ .'<br />'.
86
            'Fichier : '. __FILE__ );
87
    } else {
88
        $chemin_squelette = $chemin_test;
89
    }
90
}
91
 
92
// +------------------------------------------------------------------------------------------------------+
93
// Récupération du contenu du fichier de squelette de la page demandée.
94
 
95
// Lecture du fichier de squelette XHTML en PHP 4.1.2
96
$tab_fichier_squelette = file($chemin_squelette);
97
$contenu_squelette = '';
98
for ($i = 0; $i < count($tab_fichier_squelette); $i++) {
99
    $contenu_squelette .= $tab_fichier_squelette[$i];
100
}
101
/*
102
// Lecture du fichier de squelette XHTML en PHP 4.3
103
// $contenu_squelette = file_get_contents ($squelette);
104
*/
105
 
106
// +------------------------------------------------------------------------------------------------------+
107
// Recherche des informations pour la complétion de l'entête du squelette de la page demandée.
108
 
109
// Construction du titre.
110
if (! empty($_GEN_commun['info_menu']->gm_titre)) {
111
    $titre = htmlentities($_GEN_commun['info_menu']->gm_titre);
112
} else if (! empty($_GEN_commun['info_menu']->gm_titre_alternatif)) {
113
    $titre = htmlentities($_GEN_commun['info_menu']->gm_titre_alternatif);
114
} else {
115
    $titre = htmlentities($_GEN_commun['info_menu']->gm_nom);
116
}
117
 
112 jpm 118
// Construction des infos sur le site
5 jpm 119
$nom_site = htmlentities($_GEN_commun['info_site']->gs_nom);
112 jpm 120
$langue_site = htmlentities($_GEN_commun['i18n']);
121
$code_alpha_site = htmlentities($_GEN_commun['info_site']->gs_code_alpha);
5 jpm 122
 
123
// Construction des Meta "http-equiv".
124
$_GEN_commun['meta_http_equiv'] = array();
125
$jeu_de_caracteres = htmlentities($_GEN_commun['info_i18n']->gi_jeu_de_caracteres);
126
$langue = htmlentities($_GEN_commun['info_i18n_langue']->gil_id_langue);
127
GEN_stockerMetaHttpEquiv('Content-Type', 'text/html; charset='.$jeu_de_caracteres);
128
GEN_stockerMetaHttpEquiv('Content-style-type', 'text/css');
129
GEN_stockerMetaHttpEquiv('Content-script-type', 'text/javascript');
130
GEN_stockerMetaHttpEquiv('Content-language', $langue);
131
 
132
// Construction des Meta "name".
133
$_GEN_commun['meta_name'] = array();
134
$robot = htmlentities($_GEN_commun['info_menu']->gm_robot);
135
$auteur = htmlentities($_GEN_commun['info_menu']->gm_auteur);
136
if (empty($auteur)) {
137
    $auteur = htmlentities($_GEN_commun['info_site']->gs_auteur);
138
}
139
$mots_cles = htmlentities($_GEN_commun['info_menu']->gm_mots_cles);
140
if (empty($mots_cles)) {
141
    $auteur = htmlentities($_GEN_commun['info_site']->gs_mots_cles);
142
}
143
$description_libre = htmlentities($_GEN_commun['info_menu']->gm_description_libre);
144
if (empty($description_libre)) {
145
    $description_libre = htmlentities($_GEN_commun['info_site']->gs_description);
146
}
147
GEN_stockerMetaName('revisit-after', '15 days');
148
GEN_stockerMetaName('robots', $robot);
149
GEN_stockerMetaName('author', $auteur);
150
GEN_stockerMetaName('keywords', $mots_cles);
151
GEN_stockerMetaName('description', $description_libre);
152
 
153
// Construction des Meta Meta "name" du Dublin Core.
154
$titre_alternatif = htmlentities($_GEN_commun['info_menu']->gm_titre_alternatif);
155
$auteur = htmlentities($_GEN_commun['info_menu']->gm_auteur);
156
$description_resume = htmlentities($_GEN_commun['info_menu']->gm_description_resume);
157
$description_table_matieres = htmlentities($_GEN_commun['info_menu']->gm_description_table_matieres);
158
$publieur = htmlentities($_GEN_commun['info_menu']->gm_editeur);
159
$contributeur = htmlentities($_GEN_commun['info_menu']->gm_contributeur);
160
$date_creation = htmlentities($_GEN_commun['info_menu']->gm_date_creation);
161
$date_soumission = htmlentities($_GEN_commun['info_menu']->gm_date_soumission);
162
$date_acceptation = htmlentities($_GEN_commun['info_menu']->gm_date_acceptation);
163
$periode_validite = htmlentities($_GEN_commun['info_menu']->gm_date_debut_validite);
164
$date_copyright = htmlentities($_GEN_commun['info_menu']->gm_date_copyright);
165
$source = htmlentities($_GEN_commun['info_menu']->gm_source);
166
$langue_rfc_3066 = $langue.'-'.htmlentities($_GEN_commun['info_i18n_pays']->gip_id_pays);
167
$type_portee_spatiale = htmlentities($_GEN_commun['info_menu']->gm_ce_type_portee_spatiale);
168
$portee_spatiale = htmlentities($_GEN_commun['info_menu']->gm_portee_spatiale);
169
$type_portee_temporelle = htmlentities($_GEN_commun['info_menu']->gm_ce_type_portee_temporelle);
170
$portee_temporelle = htmlentities($_GEN_commun['info_menu']->gm_portee_temporelle);
171
$licence = htmlentities($_GEN_commun['info_menu']->gm_licence);
172
$public = htmlentities($_GEN_commun['info_menu']->gm_public);
173
$public_niveau = htmlentities($_GEN_commun['info_menu']->gm_public_niveau);
174
GEN_stockerMetaNameDC('DC.Title', $titre, $langue);
175
GEN_stockerMetaNameDC('DC.Title.alternative', $titre_alternatif, $langue);
176
GEN_stockerMetaNameDC('DC.Creator', $auteur);
177
GEN_stockerMetaNameDC('DC.Subject', $mots_cles, $langue);
178
GEN_stockerMetaNameDC('DC.Description', $description_libre, $langue);
179
GEN_stockerMetaNameDC('DC.Description.abstract', $description_resume, $langue);
180
GEN_stockerMetaNameDC('DC.Description.tableOfContents', $description_table_matieres, $langue);
181
GEN_stockerMetaNameDC('DC.Publisher', $publieur);
182
GEN_stockerMetaNameDC('DC.Contributor', $contributeur);
183
GEN_stockerMetaNameDC('DC.Date.created', $date_creation, '', 'W3CDTF');
184
GEN_stockerMetaNameDC('DC.Date.valid', $periode_validite, '', 'W3CDTF');
185
//Ajouter la gestion des dates valid et available en utilisant les dates de la table gen_page_contenu.
186
GEN_stockerMetaNameDC('DC.Date.dateSubmitted', $date_soumission, '', 'W3CDTF');
187
GEN_stockerMetaNameDC('DC.Date.dateCopyrighted', $date_copyright, '', 'W3CDTF');
188
GEN_stockerMetaNameDC('DC.Date.dateAccepted', $date_acceptation, '', 'W3CDTF');
189
GEN_stockerMetaNameDC('DC.Source', $source, '', 'URI');
190
GEN_stockerMetaNameDC('DC.Language', $langue_rfc_3066, '', 'RFC3066');
191
GEN_stockerMetaNameDC('DC.Coverage.spatial', $portee_spatiale, '', $type_portee_spatiale);
192
GEN_stockerMetaNameDC('DC.Coverage.temporal', $portee_temporelle, '', $type_portee_temporelle);
193
GEN_stockerMetaNameDC('DC.Rights', $licence, '', 'URI');
194
GEN_stockerMetaNameDC('DC.Audience', $public);
195
GEN_stockerMetaNameDC('DC.Audience.educationLevel', $public_niveau);
196
 
197
// Construction des CSS
198
// Déclaration des constantes contenant les CSS à afficher sur la page.
199
$_GEN_commun['style_type']  = 'text/css';
200
$_GEN_commun['style_integree']  = '';
201
$_GEN_commun['style_externe']   = array();
202
if (GEN_DEBOGAGE) {
203
    GEN_stockerStyleExterne('Débogage', GEN_CHEMIN_PAP.'presentations/css/debogage.css');
204
}
205
 
206
// Construction du Javascript
207
// Déclaration des constantes contenant le Javascript à afficher sur la page.
208
$_GEN_commun['script_type']    = 'text/javascript';
209
$_GEN_commun['script_code']     = '';
210
$_GEN_commun['script_fonction'] = array();
211
$_GEN_commun['script_fichier']  = array();
212
 
213
// +------------------------------------------------------------------------------------------------------+
214
// Gestion des inclusions des fichiers d'applettes
215
 
216
for ($i = 0; $i < count($_GEN_commun['info_applette']); $i++) {
217
    // Nous vérifions que le chemin vers l'applette existe.
218
    if (file_exists($_GEN_commun['info_applette'][$i]->gap_chemin)) {
219
        include_once($_GEN_commun['info_applette'][$i]->gap_chemin);
220
        // Nous récupérons l'expression régulière de la balise pour l'utiliser lors de l'appel
221
        // de la fonction de l'applette. L'appel des fonctions des applettes à lieu aprés l'appel
222
        // de l'application pour permettre à l'appli de modifier certains paramêtres (identification, ordre des menus).
223
        $_GEN_commun['info_applette'][$i]->applette_balise = $_GEN_commun['info_applette_balise'];
224
        $_GEN_commun['info_applette'][$i]->applette_fonction = $_GEN_commun['info_applette_nom_fonction'];
225
    } else {
226
        // Ne devrait pas arréter le programme! Mais instancier le gestionnaire de déboguage.
227
        die('ERREUR Génésia : Impossible de trouver le fichier de l\'applette. <br />'.
228
            'Nom applette : '.$_GEN_commun['info_applette'][$i]->gap_nom.' <br />'.
229
            'Chemin fichier applette : '.$_GEN_commun['info_applette'][$i]->gap_chemin.' <br />'.
230
            'Ligne n° : '. __LINE__ .'<br />'.
231
            'Fichier : '. __FILE__ );
232
    }
233
}
234
 
235
// +------------------------------------------------------------------------------------------------------+
236
// Gestion de l'intégration de l'application liée au menu
237
 
238
// Une fois les applettes appelées est executées nous appelons l'application qui peut avoir
239
// besoins des infos des applettes (c'est le cas, pour l'applette IDENTIFICATION).
92 jpm 240
$application_chemin = '';
241
if (isset($_GEN_commun['info_application']->gap_chemin)) {
242
    $application_chemin = $_GEN_commun['info_application']->gap_chemin;
243
}
5 jpm 244
 
245
// $application_chemin contient le chemin de l'application
246
// Si $application_chemin est vide, on défini putFrame comme ne retournant rien.
247
 
92 jpm 248
if (empty($application_chemin) ) {
5 jpm 249
    function afficherContenuCorps()
250
    {
92 jpm 251
        return '<p class="pap_erreur">'.'Pas d\'application.'.'</p>';
5 jpm 252
    }
253
} else {
254
    if (file_exists($application_chemin)) {
255
        include_once($application_chemin);
256
    } else {
257
        die('ERREUR Génésia : application impossible à charger. <br />'.
258
            'Chemin application : '.$application_chemin.' <br />'.
259
            'Ligne n° : '. __LINE__ .'<br />'.
260
            'Fichier : '. __FILE__ );
261
    }
262
}
263
 
264
// +------------------------------------------------------------------------------------------------------+
265
// Recherche des informations provenant de l'application pour la complétion du squelette
266
 
267
// Tableau associatif contenant les différentes parties du contenu à afficher
268
$aso_zone_contenu = array();
269
 
118 jpm 270
// Contenu navigation
271
// Appel de la fonction afficherContenuNavigation() si elle existe.
272
$aso_zone_contenu['contenu_navigation'] = (function_exists('afficherContenuNavigation') ? afficherContenuNavigation() : '<!-- '.'Aucune navigation'.' -->');
273
 
5 jpm 274
// Contenu tête
275
// Appel de la fonction afficherContenuTete() si elle existe.
118 jpm 276
$aso_zone_contenu['contenu_tete'] = (function_exists('afficherContenuTete') ? afficherContenuTete() : '<!-- '.'Aucun contenu tête'.' -->');
5 jpm 277
 
278
// Contenu corps
279
// Appel de la fonction afficherContenuCorps().
280
if (function_exists('afficherContenuCorps') ) {
281
    $aso_zone_contenu['contenu_corps'] = afficherContenuCorps();
282
} else {
283
    $aso_zone_contenu['contenu_corps'] =
284
        'ERREUR Génésia : fonction afficherContenuCorps() introuvable dans l\'application demandée. <br />'.
285
        'Ligne n° : '. __LINE__ .'<br />'.
286
        'Fichier : '. __FILE__;
287
}
288
// Contenu pied
289
// Appel de la fonction afficherContenuPied() si elle existe.
118 jpm 290
$aso_zone_contenu['contenu_pied'] = (function_exists('afficherContenuPied') ? afficherContenuPied() : '<!-- '.'Aucun contenu pied'.' -->');
5 jpm 291
 
292
// +------------------------------------------------------------------------------------------------------+
293
// Gestion des appels des fonctions d'applettes
294
 
295
for ($i = 0; $i < count($_GEN_commun['info_applette']); $i++) {
296
    // Recherche du nombre de balise d'une applette donnée présentes dans le squelette
297
    $nbr_balise = preg_match_all(   '/<!-- ('.$_GEN_commun['info_applette'][$i]->applette_balise.') -->/',
298
                                    $contenu_squelette,
299
                                    $tab_applet_arguments,
300
                                    PREG_SET_ORDER);
301
    // Si on trouve au moins une balise, on lance la boucle pour les remplacer
302
    for ($j = 0; $j <= ($nbr_balise - 1); $j++) {
303
        // Nous vérifions que le nom de la fonction principale de l'applette existe.
304
        if (function_exists($_GEN_commun['info_applette'][$i]->applette_fonction)) {
305
            $contenu_applette = call_user_func($_GEN_commun['info_applette'][$i]->applette_fonction, $tab_applet_arguments[$j], $_GEN_commun);
306
        } else {
307
            $contenu_applette = '<!-- '."\n".
308
                                $tab_applet_arguments[$j][1].' : '.
309
                                'fonction de l\'applette "'.$_GEN_commun['info_applette'][$i]->gap_nom.'" introuvable! '."\n".
310
                                'Fonction : '.$_GEN_commun['info_applette'][$i]->applette_fonction."\n".
311
                                ' -->';
312
        }
313
        // Remplacement des balises d'applette de Génésia dans le squelette
314
        $contenu_squelette = str_replace('<!-- '.$tab_applet_arguments[$j][1].' -->', $contenu_applette, $contenu_squelette);
315
    }
316
}
317
 
318
// +------------------------------------------------------------------------------------------------------+
319
// Continuation recherche d'info provenant de Génésia pour la complétion du squelette
320
 
321
// Une fois l'application appelé est executé nous affichons le contenu de l'entête qui a pu
322
// être modifié par l'application.
323
$meta_http_equiv = GEN_afficherMeta('http-equiv');
324
$meta_name = GEN_afficherMeta('name');
325
$meta_name_dc = GEN_afficherMeta('dc');
326
// Nous récupérons tout les styles CSS pour l'afficher dans l'entête de la page.
327
$styles = GEN_afficherStyle();
328
// Nous récupérons tout le Javascript pour l'afficher dans l'entête de la page.
329
$scripts = GEN_afficherScript();
330
 
331
// +------------------------------------------------------------------------------------------------------+
332
// Remplacement des balises Génésia dans le squelette
333
 
334
// Balise de l'entête (head) de la page xhtml
335
$contenu_squelette = str_replace('<!-- TITRE_PAGE -->', $titre, $contenu_squelette);
336
$contenu_squelette = str_replace('<!-- META_HTTP_EQUIV -->', $meta_http_equiv, $contenu_squelette);
337
$contenu_squelette = str_replace('<!-- META_NAME -->', $meta_name, $contenu_squelette);
338
$contenu_squelette = str_replace('<!-- META_NAME_DC -->', $meta_name_dc, $contenu_squelette);
339
$contenu_squelette = str_replace('<!-- STYLES -->', $styles, $contenu_squelette);
340
$contenu_squelette = str_replace('<!-- SCRIPTS -->', $scripts, $contenu_squelette);
341
// Balise du corps (body) de la page xhtml
342
$contenu_squelette = str_replace('<!-- NOM_SITE -->', $nom_site, $contenu_squelette);
112 jpm 343
$contenu_squelette = str_replace('<!-- SITE_LANGUE -->', $langue_site, $contenu_squelette);
344
$contenu_squelette = str_replace('<!-- SITE_CODE_ALPHA -->', $code_alpha_site, $contenu_squelette);
118 jpm 345
$contenu_squelette = str_replace('<!-- CONTENU_NAVIGATION -->', $aso_zone_contenu['contenu_navigation'], $contenu_squelette);
5 jpm 346
$contenu_squelette = str_replace('<!-- CONTENU_TETE -->', $aso_zone_contenu['contenu_tete'], $contenu_squelette);
347
$contenu_squelette = str_replace('<!-- CONTENU_CORPS -->', $aso_zone_contenu['contenu_corps'], $contenu_squelette);
348
$contenu_squelette = str_replace('<!-- CONTENU_PIED -->', $aso_zone_contenu['contenu_pied'], $contenu_squelette);
349
 
350
// +------------------------------------------------------------------------------------------------------+
351
// Stokage du squelette dans un variable globale aprés avoir remplacer les balises Papyrus.
352
$_GEN_commun['sortie'] = $contenu_squelette;
353
 
354
/* +--Fin du code ---------------------------------------------------------------------------------------+
355
*
356
* $Log: not supported by cvs2svn $
118 jpm 357
* Revision 1.4  2004/10/25 16:28:47  jpm
358
* Ajout de nouvelles balises Papyrus, ajout vérification mise à jour de Papyrus, meilleure gestion des sessions...
359
*
112 jpm 360
* Revision 1.3  2004/10/22 17:23:35  jpm
361
* Amélioration de la gestion de l'erreur si pas d'appli.
362
*
92 jpm 363
* Revision 1.2  2004/06/17 08:04:44  jpm
364
* Changement de constante pour les chemin d'accès à la biblio de code de Papyrus.
365
*
14 jpm 366
* Revision 1.1  2004/06/16 08:13:58  jpm
367
* Changement de nom de Génésia en Papyrus.
368
* Changement de l'arborescence.
369
*
5 jpm 370
* Revision 1.32  2004/05/10 12:24:55  jpm
371
* Amélioration de la recherche des fichiers de squelette.
372
*
373
* Revision 1.31  2004/05/05 10:42:35  jpm
374
* Amélioration de la gestion de l'internationalisation.
375
*
376
* Revision 1.30  2004/05/05 08:25:37  jpm
377
* Modification de la façon d'ajouter la feuille de style de débogage pour qu'elle soit prise en compte par défaut.
378
*
379
* Revision 1.29  2004/05/03 14:12:04  jpm
380
* Suppression du fichier bibliothèquie de fonctions sur gen_menu.
381
*
382
* Revision 1.28  2004/05/03 11:21:58  jpm
383
* Fin de la gestion des applettes et suppression de l'info_menu_hierarchie de _GEN_commun.
384
*
385
* Revision 1.27  2004/05/01 17:22:55  jpm
386
* Appel de la bibliothèque de fonctions concernant les menus.
387
*
388
* Revision 1.26  2004/05/01 16:19:36  jpm
389
* Suppression du code ayant pu être transformé en applettes (menu multi-niveaux, menu unique, menu commun, identification, sélecteur de sites).
390
*
391
* Revision 1.25  2004/05/01 11:39:38  jpm
392
* Déplacement du code gérant les applettes et du code de récupération du contenu du fichier squelette.
393
*
394
* Revision 1.24  2004/04/28 12:04:31  jpm
395
* Changement du modèle de la base de données.
396
*
397
* Revision 1.23  2004/04/22 08:30:47  jpm
398
* Transformation de $GS_GLOBAL en $_GEN_commun.
399
*
400
* Revision 1.22  2004/04/21 07:55:02  jpm
401
* Ajout de la feuille de style de débogage si le débogage de Génésia est activé.
402
*
403
* Revision 1.19  2004/04/09 16:20:54  jpm
404
* Extraction de la gestion du cache et de l'envoi.
405
* Gestion des tables i18n.
406
*
407
* Revision 1.18  2004/04/08 12:29:48  jpm
408
* Début amélioration de la gestion du cache et de la compression des pages de Génésia.
409
*
410
* Revision 1.17  2004/04/05 16:38:04  jpm
411
* Utilisation des nouvelles fonctions gérant l'insertion du Javascript.
412
*
413
* Revision 1.16  2004/04/02 16:30:56  jpm
414
* Gestion de la balise Génésia IDENTIFICATION permettant l'envoie d'un formulaire de login.
415
*
416
* Revision 1.15  2004/04/01 11:27:13  jpm
417
* Ajout et modification de commentaires pour PhpDocumentor.
418
*
419
* Revision 1.14  2004/03/31 16:50:10  jpm
420
* Prise en compte du nouveau modèle de Génésia révision 1.9.
421
*
422
* Revision 1.13  2004/03/27 11:07:45  jpm
423
* Modification des commentaires vis à vis du nouveau modèle.
424
* Mise en conformité avec la convention de codage.
425
* Amélioration du code.
426
*
427
* Revision 1.12  2004/03/23 17:06:44  jpm
428
* Ajout de commentaire dans l'entête.
429
* Mise en conformité avec la convention de codage.
430
*
431
* +-- Fin du code ----------------------------------------------------------------------------------------+
432
*/
433
?>