Subversion Repositories Applications.papyrus

Rev

Rev 290 | 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
// +------------------------------------------------------------------------------------------------------+
352 jpm 22
// CVS : $Id: pap_rendu.inc.php,v 1.13 2005-04-21 16:46:39 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 :
286 jpm 33
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
5 jpm 34
//Autres auteurs :
35
*@author        Alexandre GRANIER <alexadandre@tela-botanica.org>
286 jpm 36
*@author        Laurent COUDOUNEAU <laurent.coudouneau@ema.fr>
5 jpm 37
*@copyright     Tela-Botanica 2000-2004
352 jpm 38
*@version       $Revision: 1.13 $ $Date: 2005-04-21 16:46:39 $
5 jpm 39
// +------------------------------------------------------------------------------------------------------+
40
*/
41
 
42
// +------------------------------------------------------------------------------------------------------+
43
// |                                            ENTÊTE du PROGRAMME                                       |
44
// +------------------------------------------------------------------------------------------------------+
45
 
352 jpm 46
/** 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
 
352 jpm 49
/** 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
 
352 jpm 52
/** 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
 
352 jpm 55
/** Inclusion de la bibliothèque PEAR Text_Wiki.*/
56
include_once PAP_CHEMIN_API_PEAR.'Text/Wiki.php';
57
 
58
/** Inclusion de la bibliothèque Text_Wiki_Papyrus.*/
59
include_once GEN_CHEMIN_API.'text/wiki_papyrus/Papyrus.class.php';
60
 
5 jpm 61
// +------------------------------------------------------------------------------------------------------+
62
// |                                            CORPS du PROGRAMME                                        |
63
// +------------------------------------------------------------------------------------------------------+
64
 
65
// +------------------------------------------------------------------------------------------------------+
66
// Recherche du squelette de la page demandée.
67
 
68
// Ouverture du squelette
290 jpm 69
if (empty($GLOBALS['_GEN_commun']['info_menu']->gm_fichier_squelette)) {
70
    if (isset($GLOBALS['_GEN_commun']['traduction_info_site'])) {
71
        $GLOBALS['_PAPYRUS_']['general']['chemin_squelette'] = $GLOBALS['_GEN_commun']['traduction_info_site']->gs_fichier_squelette;
5 jpm 72
    } else {
290 jpm 73
        $GLOBALS['_PAPYRUS_']['general']['chemin_squelette'] = $GLOBALS['_GEN_commun']['info_site']->gs_fichier_squelette;
5 jpm 74
    }
75
} else {
290 jpm 76
    if (isset($GLOBALS['_GEN_commun']['traduction_info_menu'])) {
77
        $GLOBALS['_PAPYRUS_']['general']['chemin_squelette'] = $GLOBALS['_GEN_commun']['traduction_info_menu']->gs_fichier_squelette;
5 jpm 78
    } else {
290 jpm 79
        $GLOBALS['_PAPYRUS_']['general']['chemin_squelette'] = $GLOBALS['_GEN_commun']['info_menu']->gm_fichier_squelette;
5 jpm 80
    }
81
}
82
// Si l'information concernant le chemin est réellement un chemin
169 jpm 83
if (! file_exists($GLOBALS['_PAPYRUS_']['general']['chemin_squelette'])) {
5 jpm 84
    //Si ce n'est qu'un nom de fichier squelette
169 jpm 85
    $GLOBALS['_PAPYRUS_']['general']['chemin_test'] =  GEN_CHEMIN_SITES.
290 jpm 86
                    $GLOBALS['_GEN_commun']['info_site']->gs_code_alpha.'/'.
87
                    $GLOBALS['_GEN_commun']['i18n'].'/'.GEN_DOSSIER_SQUELETTE.'/'.$GLOBALS['_PAPYRUS_']['general']['chemin_squelette'];
169 jpm 88
    if (! file_exists($GLOBALS['_PAPYRUS_']['general']['chemin_test'])) {
89
        die('ERREUR Papyrus : Impossible de trouver de fichier de squelette. <br />'.
90
            'Chemin fichier squelette : '.$GLOBALS['_PAPYRUS_']['general']['chemin_squelette'].' <br />'.
5 jpm 91
            'Ligne n° : '. __LINE__ .'<br />'.
92
            'Fichier : '. __FILE__ );
93
    } else {
169 jpm 94
        $GLOBALS['_PAPYRUS_']['general']['chemin_squelette'] = $GLOBALS['_PAPYRUS_']['general']['chemin_test'];
5 jpm 95
    }
96
}
97
 
98
// +------------------------------------------------------------------------------------------------------+
99
// Récupération du contenu du fichier de squelette de la page demandée.
159 jpm 100
/*
5 jpm 101
// Lecture du fichier de squelette XHTML en PHP 4.1.2
102
$tab_fichier_squelette = file($chemin_squelette);
103
$contenu_squelette = '';
104
for ($i = 0; $i < count($tab_fichier_squelette); $i++) {
105
    $contenu_squelette .= $tab_fichier_squelette[$i];
106
}
159 jpm 107
*/
5 jpm 108
// Lecture du fichier de squelette XHTML en PHP 4.3
169 jpm 109
$GLOBALS['_PAPYRUS_']['general']['contenu_squelette'] = file_get_contents($GLOBALS['_PAPYRUS_']['general']['chemin_squelette']);
5 jpm 110
 
159 jpm 111
 
5 jpm 112
// +------------------------------------------------------------------------------------------------------+
113
// Recherche des informations pour la complétion de l'entête du squelette de la page demandée.
114
 
115
// Construction du titre.
290 jpm 116
if (! empty($GLOBALS['_GEN_commun']['info_menu']->gm_titre)) {
117
    $GLOBALS['_PAPYRUS_']['page']['titre'] = htmlentities($GLOBALS['_GEN_commun']['info_menu']->gm_titre);
118
} else if (! empty($GLOBALS['_GEN_commun']['info_menu']->gm_titre_alternatif)) {
119
    $GLOBALS['_PAPYRUS_']['page']['titre'] = htmlentities($GLOBALS['_GEN_commun']['info_menu']->gm_titre_alternatif);
5 jpm 120
} else {
290 jpm 121
    $GLOBALS['_PAPYRUS_']['page']['titre'] = htmlentities($GLOBALS['_GEN_commun']['info_menu']->gm_nom);
5 jpm 122
}
169 jpm 123
$GLOBALS['_PAPYRUS_']['rendu']['TITRE_PAGE'] = $GLOBALS['_PAPYRUS_']['page']['titre'];
5 jpm 124
 
112 jpm 125
// Construction des infos sur le site
290 jpm 126
$GLOBALS['_PAPYRUS_']['page']['nom_site'] = htmlentities($GLOBALS['_GEN_commun']['info_site']->gs_nom);
169 jpm 127
$GLOBALS['_PAPYRUS_']['rendu']['SITE_NOM'] = $GLOBALS['_PAPYRUS_']['page']['nom_site'];
290 jpm 128
$GLOBALS['_PAPYRUS_']['page']['langue_site'] = htmlentities($GLOBALS['_GEN_commun']['i18n']);
169 jpm 129
$GLOBALS['_PAPYRUS_']['rendu']['SITE_LANGUE'] = $GLOBALS['_PAPYRUS_']['page']['langue_site'];
290 jpm 130
$GLOBALS['_PAPYRUS_']['page']['code_alpha_site'] = htmlentities($GLOBALS['_GEN_commun']['info_site']->gs_code_alpha);
169 jpm 131
$GLOBALS['_PAPYRUS_']['rendu']['SITE_CODE_ALPHA'] = $GLOBALS['_PAPYRUS_']['page']['code_alpha_site'];
5 jpm 132
 
133
// Construction des Meta "http-equiv".
134
$_GEN_commun['meta_http_equiv'] = array();
169 jpm 135
$GLOBALS['_PAPYRUS_']['page']['jeu_de_caracteres'] = htmlentities($_GEN_commun['info_i18n']->gi_jeu_de_caracteres);
136
$GLOBALS['_PAPYRUS_']['rendu']['SITE_JEU_DE_CARACTERES'] = $GLOBALS['_PAPYRUS_']['page']['jeu_de_caracteres'];
137
$GLOBALS['_PAPYRUS_']['page']['langue'] = htmlentities($_GEN_commun['info_i18n_langue']->gil_id_langue);
138
$GLOBALS['_PAPYRUS_']['rendu']['SITE_LANGUE'] = $GLOBALS['_PAPYRUS_']['page']['langue'];
139
GEN_stockerMetaHttpEquiv('Content-Type', 'text/html; charset='.$GLOBALS['_PAPYRUS_']['page']['jeu_de_caracteres']);
5 jpm 140
GEN_stockerMetaHttpEquiv('Content-style-type', 'text/css');
141
GEN_stockerMetaHttpEquiv('Content-script-type', 'text/javascript');
169 jpm 142
GEN_stockerMetaHttpEquiv('Content-language', $GLOBALS['_PAPYRUS_']['page']['langue']);
5 jpm 143
 
144
// Construction des Meta "name".
145
$_GEN_commun['meta_name'] = array();
169 jpm 146
$GLOBALS['_PAPYRUS_']['page']['robot'] = htmlentities($_GEN_commun['info_menu']->gm_robot);
147
$GLOBALS['_PAPYRUS_']['page']['auteur'] = htmlentities($_GEN_commun['info_menu']->gm_auteur);
252 jpm 148
if (empty($GLOBALS['_PAPYRUS_']['page']['auteur'])) {
169 jpm 149
    $GLOBALS['_PAPYRUS_']['page']['auteur'] = htmlentities($_GEN_commun['info_site']->gs_auteur);
5 jpm 150
}
169 jpm 151
$GLOBALS['_PAPYRUS_']['page']['mots_cles'] = htmlentities($_GEN_commun['info_menu']->gm_mots_cles);
152
if (empty($GLOBALS['_PAPYRUS_']['page']['mots_cles'])) {
252 jpm 153
    $GLOBALS['_PAPYRUS_']['page']['mots_cles'] = htmlentities($_GEN_commun['info_site']->gs_mots_cles);
5 jpm 154
}
169 jpm 155
$GLOBALS['_PAPYRUS_']['page']['description_libre'] = htmlentities($_GEN_commun['info_menu']->gm_description_libre);
252 jpm 156
if (empty($GLOBALS['_PAPYRUS_']['page']['description_libre'])) {
169 jpm 157
    $GLOBALS['_PAPYRUS_']['page']['description_libre'] = htmlentities($_GEN_commun['info_site']->gs_description);
5 jpm 158
}
159
GEN_stockerMetaName('revisit-after', '15 days');
169 jpm 160
GEN_stockerMetaName('robots', $GLOBALS['_PAPYRUS_']['page']['robot']);
161
GEN_stockerMetaName('author', $GLOBALS['_PAPYRUS_']['page']['auteur']);
162
GEN_stockerMetaName('keywords', $GLOBALS['_PAPYRUS_']['page']['mots_cles']);
163
GEN_stockerMetaName('description', $GLOBALS['_PAPYRUS_']['page']['description_libre']);
5 jpm 164
 
165
// Construction des Meta Meta "name" du Dublin Core.
169 jpm 166
$GLOBALS['_PAPYRUS_']['page']['titre_alternatif'] = htmlentities($_GEN_commun['info_menu']->gm_titre_alternatif);
167
$GLOBALS['_PAPYRUS_']['page']['auteur'] = htmlentities($_GEN_commun['info_menu']->gm_auteur);
168
$GLOBALS['_PAPYRUS_']['page']['description_resume'] = htmlentities($_GEN_commun['info_menu']->gm_description_resume);
169
$GLOBALS['_PAPYRUS_']['page']['description_table_matieres'] = htmlentities($_GEN_commun['info_menu']->gm_description_table_matieres);
170
$GLOBALS['_PAPYRUS_']['page']['publieur'] = htmlentities($_GEN_commun['info_menu']->gm_editeur);
171
$GLOBALS['_PAPYRUS_']['page']['contributeur'] = htmlentities($_GEN_commun['info_menu']->gm_contributeur);
172
$GLOBALS['_PAPYRUS_']['page']['date_creation'] = htmlentities($_GEN_commun['info_menu']->gm_date_creation);
173
$GLOBALS['_PAPYRUS_']['page']['date_soumission'] = htmlentities($_GEN_commun['info_menu']->gm_date_soumission);
174
$GLOBALS['_PAPYRUS_']['page']['date_acceptation'] = htmlentities($_GEN_commun['info_menu']->gm_date_acceptation);
175
$GLOBALS['_PAPYRUS_']['page']['periode_validite'] = htmlentities($_GEN_commun['info_menu']->gm_date_debut_validite);
176
$GLOBALS['_PAPYRUS_']['page']['date_copyright'] = htmlentities($_GEN_commun['info_menu']->gm_date_copyright);
177
$GLOBALS['_PAPYRUS_']['page']['source'] = htmlentities($_GEN_commun['info_menu']->gm_source);
213 jpm 178
if ($_GEN_commun['info_i18n_pays']->gip_id_pays != '') {
179
    $GLOBALS['_PAPYRUS_']['page']['langue_rfc_3066'] = $GLOBALS['_PAPYRUS_']['page']['langue'].'-'.htmlentities($_GEN_commun['info_i18n_pays']->gip_id_pays);
180
} else {
181
    $GLOBALS['_PAPYRUS_']['page']['langue_rfc_3066'] = $GLOBALS['_PAPYRUS_']['page']['langue'];
182
}
169 jpm 183
$GLOBALS['_PAPYRUS_']['page']['type_portee_spatiale'] = htmlentities($_GEN_commun['info_menu']->gm_ce_type_portee_spatiale);
184
$GLOBALS['_PAPYRUS_']['page']['portee_spatiale'] = htmlentities($_GEN_commun['info_menu']->gm_portee_spatiale);
185
$GLOBALS['_PAPYRUS_']['page']['type_portee_temporelle'] = htmlentities($_GEN_commun['info_menu']->gm_ce_type_portee_temporelle);
186
$GLOBALS['_PAPYRUS_']['page']['portee_temporelle'] = htmlentities($_GEN_commun['info_menu']->gm_portee_temporelle);
187
$GLOBALS['_PAPYRUS_']['page']['licence'] = htmlentities($_GEN_commun['info_menu']->gm_licence);
188
$GLOBALS['_PAPYRUS_']['page']['public'] = htmlentities($_GEN_commun['info_menu']->gm_public);
189
$GLOBALS['_PAPYRUS_']['page']['public_niveau'] = htmlentities($_GEN_commun['info_menu']->gm_public_niveau);
190
GEN_stockerMetaNameDC('DC.Title', $GLOBALS['_PAPYRUS_']['page']['titre'], $GLOBALS['_PAPYRUS_']['page']['langue']);
191
GEN_stockerMetaNameDC('DC.Title.alternative', $GLOBALS['_PAPYRUS_']['page']['titre_alternatif'], $GLOBALS['_PAPYRUS_']['page']['langue']);
192
GEN_stockerMetaNameDC('DC.Creator', $GLOBALS['_PAPYRUS_']['page']['auteur']);
193
GEN_stockerMetaNameDC('DC.Subject', $GLOBALS['_PAPYRUS_']['page']['mots_cles'], $GLOBALS['_PAPYRUS_']['page']['langue']);
194
GEN_stockerMetaNameDC('DC.Description', $GLOBALS['_PAPYRUS_']['page']['description_libre'], $GLOBALS['_PAPYRUS_']['page']['langue']);
195
GEN_stockerMetaNameDC('DC.Description.abstract', $GLOBALS['_PAPYRUS_']['page']['description_resume'], $GLOBALS['_PAPYRUS_']['page']['langue']);
196
GEN_stockerMetaNameDC('DC.Description.tableOfContents', $GLOBALS['_PAPYRUS_']['page']['description_table_matieres'], $GLOBALS['_PAPYRUS_']['page']['langue']);
197
GEN_stockerMetaNameDC('DC.Publisher', $GLOBALS['_PAPYRUS_']['page']['publieur']);
198
GEN_stockerMetaNameDC('DC.Contributor', $GLOBALS['_PAPYRUS_']['page']['contributeur']);
199
GEN_stockerMetaNameDC('DC.Date.created', $GLOBALS['_PAPYRUS_']['page']['date_creation'], '', 'W3CDTF');
200
GEN_stockerMetaNameDC('DC.Date.valid', $GLOBALS['_PAPYRUS_']['page']['periode_validite'], '', 'W3CDTF');
5 jpm 201
//Ajouter la gestion des dates valid et available en utilisant les dates de la table gen_page_contenu.
169 jpm 202
GEN_stockerMetaNameDC('DC.Date.dateSubmitted', $GLOBALS['_PAPYRUS_']['page']['date_soumission'], '', 'W3CDTF');
203
GEN_stockerMetaNameDC('DC.Date.dateCopyrighted', $GLOBALS['_PAPYRUS_']['page']['date_copyright'], '', 'W3CDTF');
204
GEN_stockerMetaNameDC('DC.Date.dateAccepted', $GLOBALS['_PAPYRUS_']['page']['date_acceptation'], '', 'W3CDTF');
205
GEN_stockerMetaNameDC('DC.Source', $GLOBALS['_PAPYRUS_']['page']['source'], '', 'URI');
206
GEN_stockerMetaNameDC('DC.Language', $GLOBALS['_PAPYRUS_']['page']['langue_rfc_3066'], '', 'RFC3066');
207
GEN_stockerMetaNameDC('DC.Coverage.spatial', $GLOBALS['_PAPYRUS_']['page']['portee_spatiale'], '', $GLOBALS['_PAPYRUS_']['page']['type_portee_spatiale']);
208
GEN_stockerMetaNameDC('DC.Coverage.temporal', $GLOBALS['_PAPYRUS_']['page']['portee_temporelle'], '', $GLOBALS['_PAPYRUS_']['page']['type_portee_temporelle']);
209
GEN_stockerMetaNameDC('DC.Rights', $GLOBALS['_PAPYRUS_']['page']['licence'], '', 'URI');
210
GEN_stockerMetaNameDC('DC.Audience', $GLOBALS['_PAPYRUS_']['page']['public']);
211
GEN_stockerMetaNameDC('DC.Audience.educationLevel', $GLOBALS['_PAPYRUS_']['page']['public_niveau']);
5 jpm 212
 
213
// Construction des CSS
214
// Déclaration des constantes contenant les CSS à afficher sur la page.
290 jpm 215
$GLOBALS['_GEN_commun']['style_type']  = 'text/css';
216
$GLOBALS['_GEN_commun']['style_integree']  = '';
217
$GLOBALS['_GEN_commun']['style_externe']   = array();
5 jpm 218
if (GEN_DEBOGAGE) {
219
    GEN_stockerStyleExterne('Débogage', GEN_CHEMIN_PAP.'presentations/css/debogage.css');
220
}
221
 
222
// Construction du Javascript
223
// Déclaration des constantes contenant le Javascript à afficher sur la page.
290 jpm 224
$GLOBALS['_GEN_commun']['script_type']    = 'text/javascript';
225
$GLOBALS['_GEN_commun']['script_code']     = '';
226
$GLOBALS['_GEN_commun']['script_fonction'] = array();
227
$GLOBALS['_GEN_commun']['script_fichier']  = array();
5 jpm 228
 
229
// +------------------------------------------------------------------------------------------------------+
230
// Gestion des inclusions des fichiers d'applettes
231
 
232
for ($i = 0; $i < count($_GEN_commun['info_applette']); $i++) {
233
    // Nous vérifions que le chemin vers l'applette existe.
234
    if (file_exists($_GEN_commun['info_applette'][$i]->gap_chemin)) {
235
        include_once($_GEN_commun['info_applette'][$i]->gap_chemin);
236
        // Nous récupérons l'expression régulière de la balise pour l'utiliser lors de l'appel
237
        // de la fonction de l'applette. L'appel des fonctions des applettes à lieu aprés l'appel
238
        // de l'application pour permettre à l'appli de modifier certains paramêtres (identification, ordre des menus).
290 jpm 239
        $GLOBALS['_GEN_commun']['info_applette'][$i]->applette_balise = $GLOBALS['_GEN_commun']['info_applette_balise'];
240
        $GLOBALS['_GEN_commun']['info_applette'][$i]->applette_fonction = $GLOBALS['_GEN_commun']['info_applette_nom_fonction'];
5 jpm 241
    } else {
242
        // Ne devrait pas arréter le programme! Mais instancier le gestionnaire de déboguage.
169 jpm 243
        die('ERREUR Papyrus : Impossible de trouver le fichier de l\'applette. <br />'.
290 jpm 244
            'Nom applette : '.$GLOBALS['_GEN_commun']['info_applette'][$i]->gap_nom.' <br />'.
245
            'Chemin fichier applette : '.$GLOBALS['_GEN_commun']['info_applette'][$i]->gap_chemin.' <br />'.
5 jpm 246
            'Ligne n° : '. __LINE__ .'<br />'.
247
            'Fichier : '. __FILE__ );
248
    }
249
}
250
 
251
// +------------------------------------------------------------------------------------------------------+
252
// Gestion de l'intégration de l'application liée au menu
253
 
254
// Une fois les applettes appelées est executées nous appelons l'application qui peut avoir
255
// besoins des infos des applettes (c'est le cas, pour l'applette IDENTIFICATION).
169 jpm 256
$GLOBALS['_PAPYRUS_']['general']['application_chemin'] = '';
290 jpm 257
if (isset($GLOBALS['_GEN_commun']['info_application']->gap_chemin)) {
258
    $GLOBALS['_PAPYRUS_']['general']['application_chemin'] = $GLOBALS['_GEN_commun']['info_application']->gap_chemin;
92 jpm 259
}
5 jpm 260
 
261
// $application_chemin contient le chemin de l'application
262
// Si $application_chemin est vide, on défini putFrame comme ne retournant rien.
263
 
169 jpm 264
if (empty($GLOBALS['_PAPYRUS_']['general']['application_chemin']) ) {
5 jpm 265
    function afficherContenuCorps()
266
    {
92 jpm 267
        return '<p class="pap_erreur">'.'Pas d\'application.'.'</p>';
5 jpm 268
    }
269
} else {
169 jpm 270
    if (file_exists($GLOBALS['_PAPYRUS_']['general']['application_chemin'])) {
271
        include_once($GLOBALS['_PAPYRUS_']['general']['application_chemin']);
5 jpm 272
    } else {
169 jpm 273
        die('ERREUR Papyrus : application impossible à charger. <br />'.
274
            'Chemin application : '.$GLOBALS['_PAPYRUS_']['general']['application_chemin'].' <br />'.
5 jpm 275
            'Ligne n° : '. __LINE__ .'<br />'.
276
            'Fichier : '. __FILE__ );
277
    }
278
}
279
 
280
// +------------------------------------------------------------------------------------------------------+
281
// Recherche des informations provenant de l'application pour la complétion du squelette
282
 
118 jpm 283
// Contenu navigation
284
// Appel de la fonction afficherContenuNavigation() si elle existe.
169 jpm 285
$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_NAVIGATION'] = (function_exists('afficherContenuNavigation') ? afficherContenuNavigation() : '<!-- '.'Aucune navigation'.' -->');
118 jpm 286
 
5 jpm 287
// Contenu tête
288
// Appel de la fonction afficherContenuTete() si elle existe.
169 jpm 289
$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_TETE'] = (function_exists('afficherContenuTete') ? afficherContenuTete() : '<!-- '.'Aucun contenu tête'.' -->');
5 jpm 290
 
291
// Contenu corps
292
// Appel de la fonction afficherContenuCorps().
293
if (function_exists('afficherContenuCorps') ) {
169 jpm 294
    $GLOBALS['_PAPYRUS_']['rendu']['CONTENU_CORPS'] = afficherContenuCorps();
5 jpm 295
} else {
169 jpm 296
    $GLOBALS['_PAPYRUS_']['rendu']['CONTENU_CORPS'] =
297
        'ERREUR Papyrus : fonction afficherContenuCorps() introuvable dans l\'application demandée. <br />'.
5 jpm 298
        'Ligne n° : '. __LINE__ .'<br />'.
299
        'Fichier : '. __FILE__;
300
}
301
// Contenu pied
302
// Appel de la fonction afficherContenuPied() si elle existe.
169 jpm 303
$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_PIED'] = (function_exists('afficherContenuPied') ? afficherContenuPied() : '<!-- '.'Aucun contenu pied'.' -->');
5 jpm 304
 
305
// +------------------------------------------------------------------------------------------------------+
159 jpm 306
// Gestion de l'espace de nom pour les balise Papyrus
290 jpm 307
$GLOBALS['_GEN_commun']['balise_prefixe'] = 'PAPYRUS_';
159 jpm 308
 
309
// +------------------------------------------------------------------------------------------------------+
5 jpm 310
// Gestion des appels des fonctions d'applettes
311
 
290 jpm 312
for ($i = 0; $i < count($GLOBALS['_GEN_commun']['info_applette']); $i++) {
5 jpm 313
    // Recherche du nombre de balise d'une applette donnée présentes dans le squelette
290 jpm 314
    $GLOBALS['_PAPYRUS_']['applette']['nbr_balise'] = preg_match_all(
315
        '/<!-- '.$GLOBALS['_GEN_commun']['balise_prefixe'].'('.$GLOBALS['_GEN_commun']['info_applette'][$i]->applette_balise.') -->/',
316
        $GLOBALS['_PAPYRUS_']['general']['contenu_squelette'],
317
        $GLOBALS['_PAPYRUS_']['applette']['applet_arguments'],
318
        PREG_SET_ORDER);
5 jpm 319
    // Si on trouve au moins une balise, on lance la boucle pour les remplacer
169 jpm 320
    for ($j = 0; $j <= ($GLOBALS['_PAPYRUS_']['applette']['nbr_balise'] - 1); $j++) {
5 jpm 321
        // Nous vérifions que le nom de la fonction principale de l'applette existe.
290 jpm 322
        if (function_exists($GLOBALS['_GEN_commun']['info_applette'][$i]->applette_fonction)) {
184 jpm 323
            // Nous comptabilisons le nombre d'utilisation des applettes dans un squelette:
290 jpm 324
            if (!isset($GLOBALS['_PAPYRUS_']['applette']['comptage'][$GLOBALS['_GEN_commun']['info_applette'][$i]->applette_fonction])) {
325
                $GLOBALS['_PAPYRUS_']['applette']['comptage'][$GLOBALS['_GEN_commun']['info_applette'][$i]->applette_fonction] = 1;
184 jpm 326
            } else {
290 jpm 327
                $GLOBALS['_PAPYRUS_']['applette']['comptage'][$GLOBALS['_GEN_commun']['info_applette'][$i]->applette_fonction]++;
184 jpm 328
            }
169 jpm 329
            $GLOBALS['_PAPYRUS_']['applette']['contenu_applette'] =
290 jpm 330
                call_user_func( $GLOBALS['_GEN_commun']['info_applette'][$i]->applette_fonction,
184 jpm 331
                                    $GLOBALS['_PAPYRUS_']['applette']['applet_arguments'][$j],
290 jpm 332
                                    $GLOBALS['_GEN_commun']);
5 jpm 333
        } else {
169 jpm 334
            $GLOBALS['_PAPYRUS_']['applette']['contenu_applette'] =
290 jpm 335
                '<!-- '."\n".
336
                $GLOBALS['_PAPYRUS_']['applette']['applet_arguments'][$j][1].' : '.
337
                'fonction de l\'applette "'.$GLOBALS['_GEN_commun']['info_applette'][$i]->gap_nom.'" introuvable! '."\n".
338
                'Fonction : '.$GLOBALS['_GEN_commun']['info_applette'][$i]->applette_fonction."\n".
339
                ' -->';
5 jpm 340
        }
341
        // Remplacement des balises d'applette de Génésia dans le squelette
169 jpm 342
        $GLOBALS['_PAPYRUS_']['general']['contenu_squelette'] =
290 jpm 343
            str_replace(   '<!-- '.$GLOBALS['_GEN_commun']['balise_prefixe'].$GLOBALS['_PAPYRUS_']['applette']['applet_arguments'][$j][1].' -->',
344
                $GLOBALS['_PAPYRUS_']['applette']['contenu_applette'],
345
                $GLOBALS['_PAPYRUS_']['general']['contenu_squelette']);
5 jpm 346
    }
347
}
348
 
349
// +------------------------------------------------------------------------------------------------------+
159 jpm 350
// Continuation recherche d'info provenant de Papyrus pour la complétion du squelette
5 jpm 351
 
352
// Une fois l'application appelé est executé nous affichons le contenu de l'entête qui a pu
353
// être modifié par l'application.
169 jpm 354
$GLOBALS['_PAPYRUS_']['rendu']['META_HTTP_EQUIV'] = GEN_afficherMeta('http-equiv');
355
$GLOBALS['_PAPYRUS_']['rendu']['META_NAME'] = GEN_afficherMeta('name');
356
$GLOBALS['_PAPYRUS_']['rendu']['META_NAME_DC'] = GEN_afficherMeta('dc');
5 jpm 357
// Nous récupérons tout les styles CSS pour l'afficher dans l'entête de la page.
169 jpm 358
$GLOBALS['_PAPYRUS_']['rendu']['STYLES'] = GEN_afficherStyle();
5 jpm 359
// Nous récupérons tout le Javascript pour l'afficher dans l'entête de la page.
169 jpm 360
$GLOBALS['_PAPYRUS_']['rendu']['SCRIPTS'] = GEN_afficherScript();
5 jpm 361
 
362
// +------------------------------------------------------------------------------------------------------+
159 jpm 363
// Remplacement des balises Papyrus dans le squelette
169 jpm 364
foreach ($GLOBALS['_PAPYRUS_']['rendu'] as $GLOBALS['_PAPYRUS_']['tmp']['cle'] => $GLOBALS['_PAPYRUS_']['tmp']['val']) {
365
    $GLOBALS['_PAPYRUS_']['general']['contenu_squelette'] =
366
                    str_replace(   '<!-- '.$_GEN_commun['balise_prefixe'].$GLOBALS['_PAPYRUS_']['tmp']['cle'].' -->',
367
                                    $GLOBALS['_PAPYRUS_']['tmp']['val'],
368
                                    $GLOBALS['_PAPYRUS_']['general']['contenu_squelette']);
369
}
352 jpm 370
// +------------------------------------------------------------------------------------------------------+
371
// Remplacement des actions Papyrus dans le squelette
372
// Création d'un objet Text_Papyrus :
373
$papyrus =& new Text_Papyrus();
374
// Pour éviter de remplacer les caractères spéciaux du XHTML:
375
$papyrus->setFormatConf('Xhtml', 'translate', false);
376
// Pour indiquer le jeu de caractères (encodage) de la page courante :
377
$papyrus->setRenderConf('Xhtml', 'inclure', 'encodage', $GLOBALS['_PAPYRUS_']['page']['jeu_de_caracteres']);
378
// Pour indiquer les infos sur les pages des sites à intégrer :
379
$papyrus->setRenderConf('Xhtml', 'inclure', 'sites', $GLOBALS['_PAPYRUS_']['inclure_sites']);
380
// Application des règles de Papyrus :
381
$GLOBALS['_PAPYRUS_']['general']['contenu_squelette'] = $papyrus->transform($GLOBALS['_PAPYRUS_']['general']['contenu_squelette'], 'Xhtml');
5 jpm 382
 
383
// +------------------------------------------------------------------------------------------------------+
384
// Stokage du squelette dans un variable globale aprés avoir remplacer les balises Papyrus.
352 jpm 385
$GLOBALS['_GEN_commun']['sortie'] = $GLOBALS['_PAPYRUS_']['general']['contenu_squelette'];
5 jpm 386
 
387
/* +--Fin du code ---------------------------------------------------------------------------------------+
388
*
389
* $Log: not supported by cvs2svn $
352 jpm 390
* Revision 1.12  2005/03/02 11:04:36  jpm
391
* Modification de l'utilisation d'une variable globale.
392
*
290 jpm 393
* Revision 1.11  2005/02/28 11:20:42  jpm
394
* Modification des auteurs.
395
*
286 jpm 396
* Revision 1.10  2005/01/26 16:20:46  jpm
397
* Correction bogue meta : auteurs et mots-clés mélangés.
398
*
252 jpm 399
* Revision 1.9  2004/12/06 19:39:40  jpm
400
* Correction langue DC.
401
*
213 jpm 402
* Revision 1.8  2004/11/26 19:02:07  jpm
403
* Comptabilisation du nombre d'appel de chaque applette dans le squelette.
404
*
184 jpm 405
* Revision 1.7  2004/11/24 18:33:29  jpm
406
* Encapsulation des variables dans le tableau global _PAPYRUS_.
407
*
169 jpm 408
* Revision 1.6  2004/11/15 17:40:21  jpm
409
* Gestion d'un espace de nom pour les balises Papyrus.
410
*
159 jpm 411
* Revision 1.5  2004/10/26 18:42:54  jpm
412
* Gestion de la fonction de navigation pour les appli Papyrus.
413
*
118 jpm 414
* Revision 1.4  2004/10/25 16:28:47  jpm
415
* Ajout de nouvelles balises Papyrus, ajout vérification mise à jour de Papyrus, meilleure gestion des sessions...
416
*
112 jpm 417
* Revision 1.3  2004/10/22 17:23:35  jpm
418
* Amélioration de la gestion de l'erreur si pas d'appli.
419
*
92 jpm 420
* Revision 1.2  2004/06/17 08:04:44  jpm
421
* Changement de constante pour les chemin d'accès à la biblio de code de Papyrus.
422
*
14 jpm 423
* Revision 1.1  2004/06/16 08:13:58  jpm
424
* Changement de nom de Génésia en Papyrus.
425
* Changement de l'arborescence.
426
*
5 jpm 427
* Revision 1.32  2004/05/10 12:24:55  jpm
428
* Amélioration de la recherche des fichiers de squelette.
429
*
430
* Revision 1.31  2004/05/05 10:42:35  jpm
431
* Amélioration de la gestion de l'internationalisation.
432
*
433
* Revision 1.30  2004/05/05 08:25:37  jpm
434
* Modification de la façon d'ajouter la feuille de style de débogage pour qu'elle soit prise en compte par défaut.
435
*
436
* Revision 1.29  2004/05/03 14:12:04  jpm
437
* Suppression du fichier bibliothèquie de fonctions sur gen_menu.
438
*
439
* Revision 1.28  2004/05/03 11:21:58  jpm
440
* Fin de la gestion des applettes et suppression de l'info_menu_hierarchie de _GEN_commun.
441
*
442
* Revision 1.27  2004/05/01 17:22:55  jpm
443
* Appel de la bibliothèque de fonctions concernant les menus.
444
*
445
* Revision 1.26  2004/05/01 16:19:36  jpm
446
* Suppression du code ayant pu être transformé en applettes (menu multi-niveaux, menu unique, menu commun, identification, sélecteur de sites).
447
*
448
* Revision 1.25  2004/05/01 11:39:38  jpm
449
* Déplacement du code gérant les applettes et du code de récupération du contenu du fichier squelette.
450
*
451
* Revision 1.24  2004/04/28 12:04:31  jpm
452
* Changement du modèle de la base de données.
453
*
454
* Revision 1.23  2004/04/22 08:30:47  jpm
455
* Transformation de $GS_GLOBAL en $_GEN_commun.
456
*
457
* Revision 1.22  2004/04/21 07:55:02  jpm
458
* Ajout de la feuille de style de débogage si le débogage de Génésia est activé.
459
*
460
* Revision 1.19  2004/04/09 16:20:54  jpm
461
* Extraction de la gestion du cache et de l'envoi.
462
* Gestion des tables i18n.
463
*
464
* Revision 1.18  2004/04/08 12:29:48  jpm
465
* Début amélioration de la gestion du cache et de la compression des pages de Génésia.
466
*
467
* Revision 1.17  2004/04/05 16:38:04  jpm
468
* Utilisation des nouvelles fonctions gérant l'insertion du Javascript.
469
*
470
* Revision 1.16  2004/04/02 16:30:56  jpm
471
* Gestion de la balise Génésia IDENTIFICATION permettant l'envoie d'un formulaire de login.
472
*
473
* Revision 1.15  2004/04/01 11:27:13  jpm
474
* Ajout et modification de commentaires pour PhpDocumentor.
475
*
476
* Revision 1.14  2004/03/31 16:50:10  jpm
477
* Prise en compte du nouveau modèle de Génésia révision 1.9.
478
*
479
* Revision 1.13  2004/03/27 11:07:45  jpm
480
* Modification des commentaires vis à vis du nouveau modèle.
481
* Mise en conformité avec la convention de codage.
482
* Amélioration du code.
483
*
484
* Revision 1.12  2004/03/23 17:06:44  jpm
485
* Ajout de commentaire dans l'entête.
486
* Mise en conformité avec la convention de codage.
487
*
488
* +-- Fin du code ----------------------------------------------------------------------------------------+
489
*/
490
?>