Subversion Repositories Applications.papyrus

Rev

Rev 1147 | Rev 1169 | 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: */
409 ddelon 3
// Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org)
4
//
5
// Ce logiciel est un programme informatique servant à gérer du contenu et des
6
// applications web.
7
 
8
// Ce logiciel est régi par la licence CeCILL soumise au droit français et
9
// respectant les principes de diffusion des logiciels libres. Vous pouvez
10
// utiliser, modifier et/ou redistribuer ce programme sous les conditions
11
// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
12
// sur le site "http://www.cecill.info".
13
 
14
// En contrepartie de l'accessibilité au code source et des droits de copie,
15
// de modification et de redistribution accordés par cette licence, il n'est
16
// offert aux utilisateurs qu'une garantie limitée.  Pour les mêmes raisons,
17
// seule une responsabilité restreinte pèse sur l'auteur du programme,  le
18
// titulaire des droits patrimoniaux et les concédants successifs.
19
 
20
// A cet égard  l'attention de l'utilisateur est attirée sur les risques
21
// associés au chargement,  à l'utilisation,  à la modification et/ou au
22
// développement et à la reproduction du logiciel par l'utilisateur étant
23
// donné sa spécificité de logiciel libre, qui peut le rendre complexe à
24
// manipuler et qui le réserve donc à des développeurs et des professionnels
25
// avertis possédant  des  connaissances  informatiques approfondies.  Les
26
// utilisateurs sont donc invités à charger  et  tester  l'adéquation  du
27
// logiciel à leurs besoins dans des conditions permettant d'assurer la
28
// sécurité de leurs systèmes et ou de leurs données et, plus généralement,
29
// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
30
 
31
// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
32
// pris connaissance de la licence CeCILL, et que vous en avez accepté les
33
// termes.
34
// ----
1148 jp_milcent 35
// CVS : $Id: pap_rendu.inc.php,v 1.35 2006-12-12 17:15:57 jp_milcent Exp $
5 jpm 36
/**
37
* Rendu : programme traitant l'url demandée et retournant la page compressé au navigateur.
38
*
39
* Ce programme contient la partie collectant les informations sur la page demandée par le navigateur client.
40
* Elle vérifie que la page ne soit pas déjà présente en cache et la renvoie si elle est disponible.
41
* Elle recherche ensuite l'application liée à la page demandée. Elle exécute cette application et récupère le
42
* contenu XHTML à afficher, le stocke en cache, le compresse et le renvoi au navigateur client.
43
*
44
*@package Papyrus
45
//Auteur original :
286 jpm 46
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
5 jpm 47
//Autres auteurs :
414 alexandre_ 48
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
286 jpm 49
*@author        Laurent COUDOUNEAU <laurent.coudouneau@ema.fr>
5 jpm 50
*@copyright     Tela-Botanica 2000-2004
1148 jp_milcent 51
*@version       $Revision: 1.35 $ $Date: 2006-12-12 17:15:57 $
5 jpm 52
// +------------------------------------------------------------------------------------------------------+
53
*/
54
 
448 ddelon 55
// TODO : revoir les initialisation en l'absence de menu par defaut
56
 
5 jpm 57
// +------------------------------------------------------------------------------------------------------+
58
// |                                            ENTÊTE du PROGRAMME                                       |
59
// +------------------------------------------------------------------------------------------------------+
60
 
352 jpm 61
/** Inclusion de la bibliothèque de fonctions servant à l'insertion de meta informations pour une page donnée.*/
14 jpm 62
include_once GEN_CHEMIN_BIBLIO.'pap_meta.fonct.php';
5 jpm 63
 
352 jpm 64
/** Inclusion de la bibliothèque de fonctions servant à l'insertion de styles pour une page donnée.*/
14 jpm 65
include_once GEN_CHEMIN_BIBLIO.'pap_style.fonct.php';
5 jpm 66
 
352 jpm 67
/** Inclusion de la bibliothèque de fonctions servant à l'insertion de scripts pour une page donnée.*/
14 jpm 68
include_once GEN_CHEMIN_BIBLIO.'pap_script.fonct.php';
5 jpm 69
 
1092 florian 70
/** Inclusion de la classe servant au rendu de Papyrus.*/
71
include_once GEN_CHEMIN_BIBLIO_CLASSE.'pap_rendu.class.php';
72
 
352 jpm 73
/** Inclusion de la bibliothèque PEAR Text_Wiki.*/
74
include_once PAP_CHEMIN_API_PEAR.'Text/Wiki.php';
75
 
76
/** Inclusion de la bibliothèque Text_Wiki_Papyrus.*/
77
include_once GEN_CHEMIN_API.'text/wiki_papyrus/Papyrus.class.php';
78
 
5 jpm 79
// +------------------------------------------------------------------------------------------------------+
80
// |                                            CORPS du PROGRAMME                                        |
81
// +------------------------------------------------------------------------------------------------------+
82
 
83
// Recherche du squelette de la page demandée.
84
 
545 ddelon 85
 
5 jpm 86
// Ouverture du squelette
290 jpm 87
if (empty($GLOBALS['_GEN_commun']['info_menu']->gm_fichier_squelette)) {
88
    if (isset($GLOBALS['_GEN_commun']['traduction_info_site'])) {
89
        $GLOBALS['_PAPYRUS_']['general']['chemin_squelette'] = $GLOBALS['_GEN_commun']['traduction_info_site']->gs_fichier_squelette;
5 jpm 90
    } else {
290 jpm 91
        $GLOBALS['_PAPYRUS_']['general']['chemin_squelette'] = $GLOBALS['_GEN_commun']['info_site']->gs_fichier_squelette;
5 jpm 92
    }
93
} else {
290 jpm 94
    if (isset($GLOBALS['_GEN_commun']['traduction_info_menu'])) {
827 alexandre_ 95
        $GLOBALS['_PAPYRUS_']['general']['chemin_squelette'] = $GLOBALS['_GEN_commun']['traduction_info_menu']->gm_fichier_squelette;
5 jpm 96
    } else {
290 jpm 97
        $GLOBALS['_PAPYRUS_']['general']['chemin_squelette'] = $GLOBALS['_GEN_commun']['info_menu']->gm_fichier_squelette;
5 jpm 98
    }
99
}
545 ddelon 100
 
5 jpm 101
// Si l'information concernant le chemin est réellement un chemin
169 jpm 102
if (! file_exists($GLOBALS['_PAPYRUS_']['general']['chemin_squelette'])) {
5 jpm 103
    //Si ce n'est qu'un nom de fichier squelette
169 jpm 104
    $GLOBALS['_PAPYRUS_']['general']['chemin_test'] =  GEN_CHEMIN_SITES.
290 jpm 105
                    $GLOBALS['_GEN_commun']['info_site']->gs_code_alpha.'/'.
106
                    $GLOBALS['_GEN_commun']['i18n'].'/'.GEN_DOSSIER_SQUELETTE.'/'.$GLOBALS['_PAPYRUS_']['general']['chemin_squelette'];
169 jpm 107
    if (! file_exists($GLOBALS['_PAPYRUS_']['general']['chemin_test'])) {
108
        die('ERREUR Papyrus : Impossible de trouver de fichier de squelette. <br />'.
109
            'Chemin fichier squelette : '.$GLOBALS['_PAPYRUS_']['general']['chemin_squelette'].' <br />'.
5 jpm 110
            'Ligne n° : '. __LINE__ .'<br />'.
111
            'Fichier : '. __FILE__ );
112
    } else {
169 jpm 113
        $GLOBALS['_PAPYRUS_']['general']['chemin_squelette'] = $GLOBALS['_PAPYRUS_']['general']['chemin_test'];
5 jpm 114
    }
115
}
116
 
117
// +------------------------------------------------------------------------------------------------------+
118
// Récupération du contenu du fichier de squelette de la page demandée.
159 jpm 119
/*
5 jpm 120
// Lecture du fichier de squelette XHTML en PHP 4.1.2
121
$tab_fichier_squelette = file($chemin_squelette);
122
$contenu_squelette = '';
123
for ($i = 0; $i < count($tab_fichier_squelette); $i++) {
124
    $contenu_squelette .= $tab_fichier_squelette[$i];
125
}
159 jpm 126
*/
5 jpm 127
// Lecture du fichier de squelette XHTML en PHP 4.3
169 jpm 128
$GLOBALS['_PAPYRUS_']['general']['contenu_squelette'] = file_get_contents($GLOBALS['_PAPYRUS_']['general']['chemin_squelette']);
5 jpm 129
 
130
// +------------------------------------------------------------------------------------------------------+
131
// Recherche des informations pour la complétion de l'entête du squelette de la page demandée.
132
 
448 ddelon 133
if (isset($GLOBALS['_GEN_commun']['info_menu'])) {
134
	// Construction du titre.
135
	if (! empty($GLOBALS['_GEN_commun']['info_menu']->gm_titre)) {
136
	    $GLOBALS['_PAPYRUS_']['page']['titre'] = htmlentities($GLOBALS['_GEN_commun']['info_menu']->gm_titre);
137
	} else if (! empty($GLOBALS['_GEN_commun']['info_menu']->gm_titre_alternatif)) {
138
	    $GLOBALS['_PAPYRUS_']['page']['titre'] = htmlentities($GLOBALS['_GEN_commun']['info_menu']->gm_titre_alternatif);
139
	} else {
140
	    $GLOBALS['_PAPYRUS_']['page']['titre'] = htmlentities($GLOBALS['_GEN_commun']['info_menu']->gm_nom);
141
	}
142
 
5 jpm 143
}
448 ddelon 144
else {
145
	$GLOBALS['_PAPYRUS_']['page']['titre']='';
146
}
147
 
545 ddelon 148
 
169 jpm 149
$GLOBALS['_PAPYRUS_']['rendu']['TITRE_PAGE'] = $GLOBALS['_PAPYRUS_']['page']['titre'];
5 jpm 150
 
112 jpm 151
// Construction des infos sur le site
290 jpm 152
$GLOBALS['_PAPYRUS_']['page']['nom_site'] = htmlentities($GLOBALS['_GEN_commun']['info_site']->gs_nom);
169 jpm 153
$GLOBALS['_PAPYRUS_']['rendu']['SITE_NOM'] = $GLOBALS['_PAPYRUS_']['page']['nom_site'];
290 jpm 154
$GLOBALS['_PAPYRUS_']['page']['langue_site'] = htmlentities($GLOBALS['_GEN_commun']['i18n']);
169 jpm 155
$GLOBALS['_PAPYRUS_']['rendu']['SITE_LANGUE'] = $GLOBALS['_PAPYRUS_']['page']['langue_site'];
290 jpm 156
$GLOBALS['_PAPYRUS_']['page']['code_alpha_site'] = htmlentities($GLOBALS['_GEN_commun']['info_site']->gs_code_alpha);
169 jpm 157
$GLOBALS['_PAPYRUS_']['rendu']['SITE_CODE_ALPHA'] = $GLOBALS['_PAPYRUS_']['page']['code_alpha_site'];
5 jpm 158
 
754 ddelon 159
//Construction des infos sur le contexte d'affichage de la page
1092 florian 160
$une_url = new Net_URL();
757 ddelon 161
$une_url->addQueryString("site",$_GEN_commun['url_site']);
162
$une_url->removeQueryString("langue");
754 ddelon 163
$GLOBALS['_PAPYRUS_']['rendu']['PAGE_URL'] = $une_url->getUrl();
164
 
165
 
5 jpm 166
// Construction des Meta "http-equiv".
167
$_GEN_commun['meta_http_equiv'] = array();
544 jp_milcent 168
$GLOBALS['_PAPYRUS_']['page']['jeu_de_caracteres'] = htmlentities(strtoupper($_GEN_commun['info_i18n']->gi_jeu_de_caracteres));
169 jpm 169
$GLOBALS['_PAPYRUS_']['rendu']['SITE_JEU_DE_CARACTERES'] = $GLOBALS['_PAPYRUS_']['page']['jeu_de_caracteres'];
170
$GLOBALS['_PAPYRUS_']['page']['langue'] = htmlentities($_GEN_commun['info_i18n_langue']->gil_id_langue);
171
$GLOBALS['_PAPYRUS_']['rendu']['SITE_LANGUE'] = $GLOBALS['_PAPYRUS_']['page']['langue'];
172
GEN_stockerMetaHttpEquiv('Content-Type', 'text/html; charset='.$GLOBALS['_PAPYRUS_']['page']['jeu_de_caracteres']);
5 jpm 173
GEN_stockerMetaHttpEquiv('Content-style-type', 'text/css');
174
GEN_stockerMetaHttpEquiv('Content-script-type', 'text/javascript');
169 jpm 175
GEN_stockerMetaHttpEquiv('Content-language', $GLOBALS['_PAPYRUS_']['page']['langue']);
5 jpm 176
 
177
// Construction des Meta "name".
178
$_GEN_commun['meta_name'] = array();
448 ddelon 179
if (isset($GLOBALS['_GEN_commun']['info_menu'])) {
180
	$GLOBALS['_PAPYRUS_']['page']['robot'] = htmlentities($_GEN_commun['info_menu']->gm_robot);
181
	$GLOBALS['_PAPYRUS_']['page']['auteur'] = htmlentities($_GEN_commun['info_menu']->gm_auteur);
182
}
183
else {
184
	$GLOBALS['_PAPYRUS_']['page']['robot'] = '';
185
	$GLOBALS['_PAPYRUS_']['page']['auteur'] = '';
186
}
187
 
252 jpm 188
if (empty($GLOBALS['_PAPYRUS_']['page']['auteur'])) {
169 jpm 189
    $GLOBALS['_PAPYRUS_']['page']['auteur'] = htmlentities($_GEN_commun['info_site']->gs_auteur);
5 jpm 190
}
448 ddelon 191
if (isset($GLOBALS['_GEN_commun']['info_menu'])) {
192
	$GLOBALS['_PAPYRUS_']['page']['mots_cles'] = htmlentities($_GEN_commun['info_menu']->gm_mots_cles);
193
}
169 jpm 194
if (empty($GLOBALS['_PAPYRUS_']['page']['mots_cles'])) {
252 jpm 195
    $GLOBALS['_PAPYRUS_']['page']['mots_cles'] = htmlentities($_GEN_commun['info_site']->gs_mots_cles);
5 jpm 196
}
448 ddelon 197
if (isset($GLOBALS['_GEN_commun']['info_menu'])) {
198
	$GLOBALS['_PAPYRUS_']['page']['description_libre'] = htmlentities($_GEN_commun['info_menu']->gm_description_libre);
199
}
252 jpm 200
if (empty($GLOBALS['_PAPYRUS_']['page']['description_libre'])) {
169 jpm 201
    $GLOBALS['_PAPYRUS_']['page']['description_libre'] = htmlentities($_GEN_commun['info_site']->gs_description);
5 jpm 202
}
448 ddelon 203
 
204
 
5 jpm 205
GEN_stockerMetaName('revisit-after', '15 days');
169 jpm 206
GEN_stockerMetaName('robots', $GLOBALS['_PAPYRUS_']['page']['robot']);
207
GEN_stockerMetaName('author', $GLOBALS['_PAPYRUS_']['page']['auteur']);
208
GEN_stockerMetaName('keywords', $GLOBALS['_PAPYRUS_']['page']['mots_cles']);
209
GEN_stockerMetaName('description', $GLOBALS['_PAPYRUS_']['page']['description_libre']);
5 jpm 210
 
211
// Construction des Meta Meta "name" du Dublin Core.
443 ddelon 212
 
448 ddelon 213
if (isset($GLOBALS['_GEN_commun']['info_menu'])) {
214
	$GLOBALS['_PAPYRUS_']['page']['titre_alternatif'] = htmlentities($_GEN_commun['info_menu']->gm_titre_alternatif);
215
	$GLOBALS['_PAPYRUS_']['page']['auteur'] = htmlentities($_GEN_commun['info_menu']->gm_auteur);
216
	$GLOBALS['_PAPYRUS_']['page']['description_resume'] = htmlentities($_GEN_commun['info_menu']->gm_description_resume);
217
	$GLOBALS['_PAPYRUS_']['page']['description_table_matieres'] = htmlentities($_GEN_commun['info_menu']->gm_description_table_matieres);
218
	$GLOBALS['_PAPYRUS_']['page']['publieur'] = htmlentities($_GEN_commun['info_menu']->gm_editeur);
219
	$GLOBALS['_PAPYRUS_']['page']['contributeur'] = htmlentities($_GEN_commun['info_menu']->gm_contributeur);
220
	$GLOBALS['_PAPYRUS_']['page']['date_creation'] = htmlentities($_GEN_commun['info_menu']->gm_date_creation);
221
	$GLOBALS['_PAPYRUS_']['page']['date_soumission'] = htmlentities($_GEN_commun['info_menu']->gm_date_soumission);
222
	$GLOBALS['_PAPYRUS_']['page']['date_acceptation'] = htmlentities($_GEN_commun['info_menu']->gm_date_acceptation);
223
	$GLOBALS['_PAPYRUS_']['page']['periode_validite'] = htmlentities($_GEN_commun['info_menu']->gm_date_debut_validite);
224
	$GLOBALS['_PAPYRUS_']['page']['date_copyright'] = htmlentities($_GEN_commun['info_menu']->gm_date_copyright);
225
	$GLOBALS['_PAPYRUS_']['page']['source'] = htmlentities($_GEN_commun['info_menu']->gm_source);
226
}
227
else {
228
	$GLOBALS['_PAPYRUS_']['page']['titre_alternatif'] = '';
229
	$GLOBALS['_PAPYRUS_']['page']['auteur'] = '';
230
	$GLOBALS['_PAPYRUS_']['page']['description_resume'] = '';
231
	$GLOBALS['_PAPYRUS_']['page']['description_table_matieres'] = '';
232
	$GLOBALS['_PAPYRUS_']['page']['publieur'] = '';
233
	$GLOBALS['_PAPYRUS_']['page']['contributeur'] = '';
234
	$GLOBALS['_PAPYRUS_']['page']['date_creation'] = '';
235
	$GLOBALS['_PAPYRUS_']['page']['date_soumission'] = '';
236
	$GLOBALS['_PAPYRUS_']['page']['date_acceptation'] = '';
237
	$GLOBALS['_PAPYRUS_']['page']['periode_validite'] = '';
238
	$GLOBALS['_PAPYRUS_']['page']['date_copyright'] = '';
239
	$GLOBALS['_PAPYRUS_']['page']['source'] = '';
240
}
241
 
767 ddelon 242
if ((isset($_GEN_commun['info_i18n_pays'])) && ($_GEN_commun['info_i18n_pays']->gip_id_pays != '')) {
213 jpm 243
    $GLOBALS['_PAPYRUS_']['page']['langue_rfc_3066'] = $GLOBALS['_PAPYRUS_']['page']['langue'].'-'.htmlentities($_GEN_commun['info_i18n_pays']->gip_id_pays);
244
} else {
245
    $GLOBALS['_PAPYRUS_']['page']['langue_rfc_3066'] = $GLOBALS['_PAPYRUS_']['page']['langue'];
246
}
448 ddelon 247
if (isset($GLOBALS['_GEN_commun']['info_menu'])) {
248
	$GLOBALS['_PAPYRUS_']['page']['type_portee_spatiale'] = htmlentities($_GEN_commun['info_menu']->gm_ce_type_portee_spatiale);
249
	$GLOBALS['_PAPYRUS_']['page']['portee_spatiale'] = htmlentities($_GEN_commun['info_menu']->gm_portee_spatiale);
250
	$GLOBALS['_PAPYRUS_']['page']['type_portee_temporelle'] = htmlentities($_GEN_commun['info_menu']->gm_ce_type_portee_temporelle);
251
	$GLOBALS['_PAPYRUS_']['page']['portee_temporelle'] = htmlentities($_GEN_commun['info_menu']->gm_portee_temporelle);
252
	$GLOBALS['_PAPYRUS_']['page']['licence'] = htmlentities($_GEN_commun['info_menu']->gm_licence);
253
	$GLOBALS['_PAPYRUS_']['page']['public'] = htmlentities($_GEN_commun['info_menu']->gm_public);
254
	$GLOBALS['_PAPYRUS_']['page']['public_niveau'] = htmlentities($_GEN_commun['info_menu']->gm_public_niveau);
255
}
256
else {
257
	$GLOBALS['_PAPYRUS_']['page']['type_portee_spatiale'] = '';
258
	$GLOBALS['_PAPYRUS_']['page']['portee_spatiale'] = '';
259
	$GLOBALS['_PAPYRUS_']['page']['type_portee_temporelle'] = '';
260
	$GLOBALS['_PAPYRUS_']['page']['portee_temporelle'] = '';
261
	$GLOBALS['_PAPYRUS_']['page']['licence'] = '';
262
	$GLOBALS['_PAPYRUS_']['page']['public'] = '';
263
	$GLOBALS['_PAPYRUS_']['page']['public_niveau'] = '';
264
 
265
}
266
 
169 jpm 267
GEN_stockerMetaNameDC('DC.Title', $GLOBALS['_PAPYRUS_']['page']['titre'], $GLOBALS['_PAPYRUS_']['page']['langue']);
268
GEN_stockerMetaNameDC('DC.Title.alternative', $GLOBALS['_PAPYRUS_']['page']['titre_alternatif'], $GLOBALS['_PAPYRUS_']['page']['langue']);
269
GEN_stockerMetaNameDC('DC.Creator', $GLOBALS['_PAPYRUS_']['page']['auteur']);
270
GEN_stockerMetaNameDC('DC.Subject', $GLOBALS['_PAPYRUS_']['page']['mots_cles'], $GLOBALS['_PAPYRUS_']['page']['langue']);
271
GEN_stockerMetaNameDC('DC.Description', $GLOBALS['_PAPYRUS_']['page']['description_libre'], $GLOBALS['_PAPYRUS_']['page']['langue']);
272
GEN_stockerMetaNameDC('DC.Description.abstract', $GLOBALS['_PAPYRUS_']['page']['description_resume'], $GLOBALS['_PAPYRUS_']['page']['langue']);
273
GEN_stockerMetaNameDC('DC.Description.tableOfContents', $GLOBALS['_PAPYRUS_']['page']['description_table_matieres'], $GLOBALS['_PAPYRUS_']['page']['langue']);
274
GEN_stockerMetaNameDC('DC.Publisher', $GLOBALS['_PAPYRUS_']['page']['publieur']);
275
GEN_stockerMetaNameDC('DC.Contributor', $GLOBALS['_PAPYRUS_']['page']['contributeur']);
276
GEN_stockerMetaNameDC('DC.Date.created', $GLOBALS['_PAPYRUS_']['page']['date_creation'], '', 'W3CDTF');
277
GEN_stockerMetaNameDC('DC.Date.valid', $GLOBALS['_PAPYRUS_']['page']['periode_validite'], '', 'W3CDTF');
5 jpm 278
//Ajouter la gestion des dates valid et available en utilisant les dates de la table gen_page_contenu.
169 jpm 279
GEN_stockerMetaNameDC('DC.Date.dateSubmitted', $GLOBALS['_PAPYRUS_']['page']['date_soumission'], '', 'W3CDTF');
280
GEN_stockerMetaNameDC('DC.Date.dateCopyrighted', $GLOBALS['_PAPYRUS_']['page']['date_copyright'], '', 'W3CDTF');
281
GEN_stockerMetaNameDC('DC.Date.dateAccepted', $GLOBALS['_PAPYRUS_']['page']['date_acceptation'], '', 'W3CDTF');
282
GEN_stockerMetaNameDC('DC.Source', $GLOBALS['_PAPYRUS_']['page']['source'], '', 'URI');
283
GEN_stockerMetaNameDC('DC.Language', $GLOBALS['_PAPYRUS_']['page']['langue_rfc_3066'], '', 'RFC3066');
284
GEN_stockerMetaNameDC('DC.Coverage.spatial', $GLOBALS['_PAPYRUS_']['page']['portee_spatiale'], '', $GLOBALS['_PAPYRUS_']['page']['type_portee_spatiale']);
285
GEN_stockerMetaNameDC('DC.Coverage.temporal', $GLOBALS['_PAPYRUS_']['page']['portee_temporelle'], '', $GLOBALS['_PAPYRUS_']['page']['type_portee_temporelle']);
286
GEN_stockerMetaNameDC('DC.Rights', $GLOBALS['_PAPYRUS_']['page']['licence'], '', 'URI');
287
GEN_stockerMetaNameDC('DC.Audience', $GLOBALS['_PAPYRUS_']['page']['public']);
288
GEN_stockerMetaNameDC('DC.Audience.educationLevel', $GLOBALS['_PAPYRUS_']['page']['public_niveau']);
5 jpm 289
 
290
// Construction des CSS
291
// Déclaration des constantes contenant les CSS à afficher sur la page.
290 jpm 292
$GLOBALS['_GEN_commun']['style_type']  = 'text/css';
293
$GLOBALS['_GEN_commun']['style_integree']  = '';
294
$GLOBALS['_GEN_commun']['style_externe']   = array();
5 jpm 295
 
296
// Construction du Javascript
297
// Déclaration des constantes contenant le Javascript à afficher sur la page.
290 jpm 298
$GLOBALS['_GEN_commun']['script_type']    = 'text/javascript';
299
$GLOBALS['_GEN_commun']['script_code']     = '';
300
$GLOBALS['_GEN_commun']['script_fonction'] = array();
301
$GLOBALS['_GEN_commun']['script_fichier']  = array();
5 jpm 302
 
303
// +------------------------------------------------------------------------------------------------------+
1092 florian 304
// Gestion de l'espace de nom pour les balise Papyrus
305
$GLOBALS['_GEN_commun']['balise_prefixe'] = 'PAPYRUS_';
306
$GLOBALS['_GEN_commun']['balise_prefixe_client'] = 'CLIENT_';
5 jpm 307
 
1092 florian 308
// +------------------------------------------------------------------------------------------------------+
309
// Gestion des inclusions des fichiers d'applettes présentes dans le squelette
310
// TODO : Supprimer des fichiers du coeur de Papyrus, précédent ce fichier, la variable : $_GEN_commun['info_applette']
311
$GLOBALS['_PAPYRUS_']['info_applette'] = array();
1148 jp_milcent 312
$PapRendu = new Pap_Rendu();
313
$PapRendu->parserBaliseApplette($GLOBALS['_PAPYRUS_']['general']['contenu_squelette']);
5 jpm 314
 
315
// +------------------------------------------------------------------------------------------------------+
316
// Gestion de l'intégration de l'application liée au menu
317
 
557 ddelon 318
// Une fois les applettes appelées et executées nous appelons l'application qui peut avoir
5 jpm 319
// besoins des infos des applettes (c'est le cas, pour l'applette IDENTIFICATION).
169 jpm 320
$GLOBALS['_PAPYRUS_']['general']['application_chemin'] = '';
290 jpm 321
if (isset($GLOBALS['_GEN_commun']['info_application']->gap_chemin)) {
322
    $GLOBALS['_PAPYRUS_']['general']['application_chemin'] = $GLOBALS['_GEN_commun']['info_application']->gap_chemin;
92 jpm 323
}
5 jpm 324
 
557 ddelon 325
// Affichage contenu si identifié (parametre : lecture = + )
326
 
1092 florian 327
$lecture = 0;
557 ddelon 328
if ((isset($GLOBALS['_GEN_commun']['info_application']->lecture)) && ($GLOBALS['_GEN_commun']['info_application']->lecture=="+")) {
329
	if ($GLOBALS['_GEN_commun']['pear_auth']->getAuth()) {
330
		$lecture=1;
331
	}
332
}
333
// Emplacement pour traiter les futurs cas :
334
else {
335
	$lecture=1;
336
}
337
 
338
if (!$lecture) {
339
	function afficherContenuCorps()
340
    {
341
        return '<p class="pap_erreur">'.'Pas autorisé, veuillez vous identifier.'.'</p>';
342
    }
343
}
344
 
5 jpm 345
// $application_chemin contient le chemin de l'application
346
// Si $application_chemin est vide, on défini putFrame comme ne retournant rien.
347
 
169 jpm 348
if (empty($GLOBALS['_PAPYRUS_']['general']['application_chemin']) ) {
5 jpm 349
    function afficherContenuCorps()
350
    {
92 jpm 351
        return '<p class="pap_erreur">'.'Pas d\'application.'.'</p>';
5 jpm 352
    }
353
} else {
169 jpm 354
    if (file_exists($GLOBALS['_PAPYRUS_']['general']['application_chemin'])) {
557 ddelon 355
    	if (!function_exists('afficherContenuCorps')) {
356
        	include_once($GLOBALS['_PAPYRUS_']['general']['application_chemin']);
357
    	}
5 jpm 358
    } else {
169 jpm 359
        die('ERREUR Papyrus : application impossible à charger. <br />'.
360
            'Chemin application : '.$GLOBALS['_PAPYRUS_']['general']['application_chemin'].' <br />'.
5 jpm 361
            'Ligne n° : '. __LINE__ .'<br />'.
362
            'Fichier : '. __FILE__ );
363
    }
364
}
365
 
557 ddelon 366
 
367
 
5 jpm 368
// +------------------------------------------------------------------------------------------------------+
369
// Recherche des informations provenant de l'application pour la complétion du squelette
370
 
118 jpm 371
// Contenu navigation
372
// Appel de la fonction afficherContenuNavigation() si elle existe.
169 jpm 373
$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_NAVIGATION'] = (function_exists('afficherContenuNavigation') ? afficherContenuNavigation() : '<!-- '.'Aucune navigation'.' -->');
118 jpm 374
 
5 jpm 375
// Contenu tête
376
// Appel de la fonction afficherContenuTete() si elle existe.
169 jpm 377
$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_TETE'] = (function_exists('afficherContenuTete') ? afficherContenuTete() : '<!-- '.'Aucun contenu tête'.' -->');
5 jpm 378
 
379
// Contenu corps
380
// Appel de la fonction afficherContenuCorps().
381
if (function_exists('afficherContenuCorps') ) {
169 jpm 382
    $GLOBALS['_PAPYRUS_']['rendu']['CONTENU_CORPS'] = afficherContenuCorps();
5 jpm 383
} else {
169 jpm 384
    $GLOBALS['_PAPYRUS_']['rendu']['CONTENU_CORPS'] =
385
        'ERREUR Papyrus : fonction afficherContenuCorps() introuvable dans l\'application demandée. <br />'.
5 jpm 386
        'Ligne n° : '. __LINE__ .'<br />'.
387
        'Fichier : '. __FILE__;
388
}
414 alexandre_ 389
 
390
// Appel de la fonction afficherContenuMenu() si elle existe.
565 ddelon 391
if (isset($GLOBALS['_PAPYRUS_']['rendu']['CONTENU_MENU'])) {
392
	$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_MENU'] .= (function_exists('afficherContenuMenu') ? afficherContenuMenu() : '<!-- '.'Aucun menu pour cette application'.' -->');
393
}
394
else {
395
	$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_MENU'] = (function_exists('afficherContenuMenu') ? afficherContenuMenu() : '<!-- '.'Aucun menu pour cette application'.' -->');
396
}
414 alexandre_ 397
 
5 jpm 398
// Contenu pied
399
// Appel de la fonction afficherContenuPied() si elle existe.
169 jpm 400
$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_PIED'] = (function_exists('afficherContenuPied') ? afficherContenuPied() : '<!-- '.'Aucun contenu pied'.' -->');
5 jpm 401
 
1092 florian 402
// Compilation du contenu de l'application
403
$GLOBALS['_PAPYRUS_']['general']['contenu_application'] = 	$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_NAVIGATION'].
404
															$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_TETE'].
405
															$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_CORPS'].
406
															$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_MENU'].
407
															$GLOBALS['_PAPYRUS_']['rendu']['CONTENU_PIED'];
159 jpm 408
 
409
// +------------------------------------------------------------------------------------------------------+
410
// Continuation recherche d'info provenant de Papyrus pour la complétion du squelette
5 jpm 411
 
412
// Une fois l'application appelé est executé nous affichons le contenu de l'entête qui a pu
413
// être modifié par l'application.
169 jpm 414
$GLOBALS['_PAPYRUS_']['rendu']['META_HTTP_EQUIV'] = GEN_afficherMeta('http-equiv');
415
$GLOBALS['_PAPYRUS_']['rendu']['META_NAME'] = GEN_afficherMeta('name');
416
$GLOBALS['_PAPYRUS_']['rendu']['META_NAME_DC'] = GEN_afficherMeta('dc');
5 jpm 417
// Nous récupérons tout les styles CSS pour l'afficher dans l'entête de la page.
169 jpm 418
$GLOBALS['_PAPYRUS_']['rendu']['STYLES'] = GEN_afficherStyle();
5 jpm 419
// Nous récupérons tout le Javascript pour l'afficher dans l'entête de la page.
169 jpm 420
$GLOBALS['_PAPYRUS_']['rendu']['SCRIPTS'] = GEN_afficherScript();
5 jpm 421
 
422
// +------------------------------------------------------------------------------------------------------+
1148 jp_milcent 423
// Remplacement des balises des applettes de Papyrus et des Clients dans le squelette avant les appli
424
$PapRendu->remplacerBaliseApplette();
425
 
426
// +------------------------------------------------------------------------------------------------------+
1092 florian 427
// Gestion des inclusions des fichiers d'applettes présentes dans le contenu généré par l'application
1097 florian 428
if (!isset($GLOBALS['_PAPYRUS_']['applette']['analyse']) || $GLOBALS['_PAPYRUS_']['applette']['analyse'] == true) {
1093 florian 429
	// Puisque l'application autorise l'analyse, nous l'effectuons:
1148 jp_milcent 430
	$PapRendu->parserBaliseApplette($GLOBALS['_PAPYRUS_']['general']['contenu_application'], true);
1093 florian 431
}
1092 florian 432
 
433
// +------------------------------------------------------------------------------------------------------+
1148 jp_milcent 434
// Remplacement des balises Papyrus dans le squelette, le contenu généré par l'appli est remplacé.
1147 jp_milcent 435
foreach ($GLOBALS['_PAPYRUS_']['rendu'] as $GLOBALS['_PAPYRUS_']['tmp']['cle'] => $GLOBALS['_PAPYRUS_']['tmp']['val']) {
436
    $GLOBALS['_PAPYRUS_']['general']['contenu_squelette'] =
437
                    str_replace(   '<!-- '.$_GEN_commun['balise_prefixe'].$GLOBALS['_PAPYRUS_']['tmp']['cle'].' -->',
438
                                    $GLOBALS['_PAPYRUS_']['tmp']['val'],
439
                                    $GLOBALS['_PAPYRUS_']['general']['contenu_squelette']);
440
}
1092 florian 441
 
442
// +------------------------------------------------------------------------------------------------------+
1148 jp_milcent 443
// Remplacement des balises des applettes de Papyrus et des Clients dans le contenu de l'application si nécessaire
444
if ($PapRendu->getBoolBaliseAppli()) {
445
	$PapRendu->remplacerBaliseApplette();
446
}
447
 
448
// +------------------------------------------------------------------------------------------------------+
352 jpm 449
// Remplacement des actions Papyrus dans le squelette
450
// Création d'un objet Text_Papyrus :
451
$papyrus =& new Text_Papyrus();
452
// Pour éviter de remplacer les caractères spéciaux du XHTML:
453
$papyrus->setFormatConf('Xhtml', 'translate', false);
454
// Application des règles de Papyrus :
455
$GLOBALS['_PAPYRUS_']['general']['contenu_squelette'] = $papyrus->transform($GLOBALS['_PAPYRUS_']['general']['contenu_squelette'], 'Xhtml');
5 jpm 456
 
457
// +------------------------------------------------------------------------------------------------------+
458
// Stokage du squelette dans un variable globale aprés avoir remplacer les balises Papyrus.
352 jpm 459
$GLOBALS['_GEN_commun']['sortie'] = $GLOBALS['_PAPYRUS_']['general']['contenu_squelette'];
5 jpm 460
 
461
/* +--Fin du code ---------------------------------------------------------------------------------------+
462
*
463
* $Log: not supported by cvs2svn $
1148 jp_milcent 464
* Revision 1.34  2006/12/12 13:56:33  jp_milcent
465
* Modification de l'ordre de remplacement des balises pour permettre aux apllettes d'intéragir sur le contenu de l'application.
466
*
1147 jp_milcent 467
* Revision 1.33  2006/12/08 15:59:17  jp_milcent
468
* Suppression de code inutile.
469
*
1120 jp_milcent 470
* Revision 1.32  2006/12/01 17:05:34  florian
471
* Correction bogue d'opérateur.
472
*
1097 florian 473
* Revision 1.31  2006/12/01 16:59:45  florian
474
* Ajout d'une variable parametrant la recherche de balise d'applette dans le contenu généré par l'appli.
475
*
1093 florian 476
* Revision 1.30  2006/12/01 16:41:04  florian
477
* Début gestion de l'appel des applettes dans le squelette comme dans le contenu généré par l'application.
478
*
1092 florian 479
* Revision 1.29  2006/04/20 09:45:30  alexandre_tb
480
* ligne 92, remplacement de gs_fichier_squelette par gm_fichier_squelette, car on appelle le squelette du menu (s'il existe) et non du site.
481
* Posait un pb lors de l'affichage de squelettes (de menu) des traductions de menu
482
*
827 alexandre_ 483
* Revision 1.28  2006/03/13 21:00:20  ddelon
484
* Suppression messages d'erreur multilinguisme
485
*
767 ddelon 486
* Revision 1.27  2006/03/02 13:45:27  ddelon
487
* Balise url page
488
*
757 ddelon 489
* Revision 1.26  2006/03/02 10:49:49  ddelon
490
* Fusion branche multilinguisme dans branche principale
491
*
754 ddelon 492
* Revision 1.25  2005/12/09 15:07:07  florian
493
* suppression de debogage.css, pour optimiser les performances (c'est intégré dans la feuille de style par défaut dorénavant)
494
*
495
* Revision 1.24.2.6  2006/03/01 22:28:15  ddelon
496
* Balise url page
497
*
498
* Revision 1.24.2.5  2006/03/01 22:09:49  ddelon
499
* Balise url page
500
*
501
* Revision 1.24.2.4  2006/02/28 15:54:07  ddelon
502
* Integration branche principale
503
*
504
* Revision 1.24.2.3  2006/02/28 14:02:09  ddelon
505
* Finition multilinguisme
506
*
507
* Revision 1.24.2.2  2006/01/19 21:26:20  ddelon
508
* Multilinguisme site + bug ftp
509
*
510
* Revision 1.24.2.1  2005/12/20 14:40:24  ddelon
511
* Fusion Head vers Livraison
512
*
513
* Revision 1.25  2005/12/09 15:07:07  florian
514
* suppression de debogage.css, pour optimiser les performances (c'est intégré dans la feuille de style par défaut dorénavant)
515
*
648 florian 516
* Revision 1.24  2005/10/21 22:22:16  ddelon
517
* projet wikini : fiche synthese
518
*
565 ddelon 519
* Revision 1.23  2005/10/20 13:12:18  ddelon
520
* Gestion protection menu
521
*
557 ddelon 522
* Revision 1.22  2005/10/20 10:28:25  ddelon
523
* Wikini complet dans l'intégrateur Wikini
524
*
556 ddelon 525
* Revision 1.21  2005/10/17 13:41:34  ddelon
526
* Projet Wikini
527
*
545 ddelon 528
* Revision 1.20  2005/10/17 10:52:00  jp_milcent
529
* Mise en majuscule du jeu de caractère, conformément à la recommandation.
530
*
544 jp_milcent 531
* Revision 1.19  2005/10/12 17:20:33  ddelon
532
* Reorganisation calendrier + applette
533
*
530 ddelon 534
* Revision 1.18  2005/09/22 14:02:49  ddelon
535
* nettoyage annuaire et php5
536
*
448 ddelon 537
* Revision 1.17  2005/09/20 17:01:22  ddelon
538
* php5 et bugs divers
539
*
443 ddelon 540
* Revision 1.16  2005/07/12 09:13:15  alexandre_tb
541
* déplacement de l'appel de la fonction afficherContenuMenu APRES l'appel de afficherContenuCorps.
542
* Le menu d'une application étant calculé après les opérations de l'application.
543
*
414 alexandre_ 544
* Revision 1.15  2005/07/08 21:13:15  ddelon
545
* Gestion indentation menu
546
*
409 ddelon 547
* Revision 1.14  2005/05/11 14:31:45  jpm
548
* Ajout de la fonction afficherContenuMenu() pour les applications.
549
*
365 jpm 550
* Revision 1.13  2005/04/21 16:46:39  jpm
551
* Gestion via Papyrus du XHTML de Text_Wiki_Papyrus.
552
*
352 jpm 553
* Revision 1.12  2005/03/02 11:04:36  jpm
554
* Modification de l'utilisation d'une variable globale.
555
*
290 jpm 556
* Revision 1.11  2005/02/28 11:20:42  jpm
557
* Modification des auteurs.
558
*
286 jpm 559
* Revision 1.10  2005/01/26 16:20:46  jpm
560
* Correction bogue meta : auteurs et mots-clés mélangés.
561
*
252 jpm 562
* Revision 1.9  2004/12/06 19:39:40  jpm
563
* Correction langue DC.
564
*
213 jpm 565
* Revision 1.8  2004/11/26 19:02:07  jpm
566
* Comptabilisation du nombre d'appel de chaque applette dans le squelette.
567
*
184 jpm 568
* Revision 1.7  2004/11/24 18:33:29  jpm
569
* Encapsulation des variables dans le tableau global _PAPYRUS_.
570
*
169 jpm 571
* Revision 1.6  2004/11/15 17:40:21  jpm
572
* Gestion d'un espace de nom pour les balises Papyrus.
573
*
159 jpm 574
* Revision 1.5  2004/10/26 18:42:54  jpm
575
* Gestion de la fonction de navigation pour les appli Papyrus.
576
*
118 jpm 577
* Revision 1.4  2004/10/25 16:28:47  jpm
578
* Ajout de nouvelles balises Papyrus, ajout vérification mise à jour de Papyrus, meilleure gestion des sessions...
579
*
112 jpm 580
* Revision 1.3  2004/10/22 17:23:35  jpm
581
* Amélioration de la gestion de l'erreur si pas d'appli.
582
*
92 jpm 583
* Revision 1.2  2004/06/17 08:04:44  jpm
584
* Changement de constante pour les chemin d'accès à la biblio de code de Papyrus.
585
*
14 jpm 586
* Revision 1.1  2004/06/16 08:13:58  jpm
587
* Changement de nom de Génésia en Papyrus.
588
* Changement de l'arborescence.
589
*
5 jpm 590
* Revision 1.32  2004/05/10 12:24:55  jpm
591
* Amélioration de la recherche des fichiers de squelette.
592
*
593
* Revision 1.31  2004/05/05 10:42:35  jpm
594
* Amélioration de la gestion de l'internationalisation.
595
*
596
* Revision 1.30  2004/05/05 08:25:37  jpm
597
* Modification de la façon d'ajouter la feuille de style de débogage pour qu'elle soit prise en compte par défaut.
598
*
599
* Revision 1.29  2004/05/03 14:12:04  jpm
600
* Suppression du fichier bibliothèquie de fonctions sur gen_menu.
601
*
602
* Revision 1.28  2004/05/03 11:21:58  jpm
603
* Fin de la gestion des applettes et suppression de l'info_menu_hierarchie de _GEN_commun.
604
*
605
* Revision 1.27  2004/05/01 17:22:55  jpm
606
* Appel de la bibliothèque de fonctions concernant les menus.
607
*
608
* Revision 1.26  2004/05/01 16:19:36  jpm
609
* Suppression du code ayant pu être transformé en applettes (menu multi-niveaux, menu unique, menu commun, identification, sélecteur de sites).
610
*
611
* Revision 1.25  2004/05/01 11:39:38  jpm
612
* Déplacement du code gérant les applettes et du code de récupération du contenu du fichier squelette.
613
*
614
* Revision 1.24  2004/04/28 12:04:31  jpm
615
* Changement du modèle de la base de données.
616
*
617
* Revision 1.23  2004/04/22 08:30:47  jpm
618
* Transformation de $GS_GLOBAL en $_GEN_commun.
619
*
620
* Revision 1.22  2004/04/21 07:55:02  jpm
621
* Ajout de la feuille de style de débogage si le débogage de Génésia est activé.
622
*
623
* Revision 1.19  2004/04/09 16:20:54  jpm
624
* Extraction de la gestion du cache et de l'envoi.
625
* Gestion des tables i18n.
626
*
627
* Revision 1.18  2004/04/08 12:29:48  jpm
628
* Début amélioration de la gestion du cache et de la compression des pages de Génésia.
629
*
630
* Revision 1.17  2004/04/05 16:38:04  jpm
631
* Utilisation des nouvelles fonctions gérant l'insertion du Javascript.
632
*
633
* Revision 1.16  2004/04/02 16:30:56  jpm
634
* Gestion de la balise Génésia IDENTIFICATION permettant l'envoie d'un formulaire de login.
635
*
636
* Revision 1.15  2004/04/01 11:27:13  jpm
637
* Ajout et modification de commentaires pour PhpDocumentor.
638
*
639
* Revision 1.14  2004/03/31 16:50:10  jpm
640
* Prise en compte du nouveau modèle de Génésia révision 1.9.
641
*
642
* Revision 1.13  2004/03/27 11:07:45  jpm
643
* Modification des commentaires vis à vis du nouveau modèle.
644
* Mise en conformité avec la convention de codage.
645
* Amélioration du code.
646
*
647
* Revision 1.12  2004/03/23 17:06:44  jpm
648
* Ajout de commentaire dans l'entête.
649
* Mise en conformité avec la convention de codage.
650
*
651
* +-- Fin du code ----------------------------------------------------------------------------------------+
652
*/
653
?>