-
-
Notifications
You must be signed in to change notification settings - Fork 70
/
index.php
86 lines (66 loc) · 2.28 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?php
const PLX_ROOT = './';
const PLX_CORE = PLX_ROOT.'core/';
include PLX_CORE . 'lib/config.php';
# On verifie que PluXml est installé
if(!file_exists(path('XMLFILE_PARAMETERS'))) {
header('Location: ' . PLX_ROOT . 'install.php');
exit;
}
# On démarre la session
plx_session_start();
# Creation de l'objet principal et lancement du traitement
$plxMotor = plxMotor::getInstance();
# Hook Plugins
eval($plxMotor->plxPlugins->callHook('Index'));
# chargement du fichier de langue
loadLang(PLX_CORE.'lang/' . PLX_SITE_LANG . '/core.php');
$plxMotor->prechauffage();
$plxMotor->demarrage();
# Creation de l'objet d'affichage
$plxShow = plxShow::getInstance();
eval($plxMotor->plxPlugins->callHook('IndexBegin')); # Hook Plugins
# Traitements du thème
$style = PLX_ROOT . $plxShow->plxMotor->aConf['racine_themes'] . $plxShow->plxMotor->style;
if (empty(trim($plxShow->plxMotor->style)) or !is_dir($style)) {
header('Content-Type: text/plain; charset=' . PLX_CHARSET);
echo L_ERR_THEME_NOTFOUND.' (' . $style . ') !';
exit;
}
$template = $style . '/' . $plxShow->plxMotor->template;
if (!is_file($template)) {
header('Content-Type: text/plain; charset=' . PLX_CHARSET);
echo L_ERR_FILE_NOTFOUND.' (' . $template . ') !';
exit;
}
# On démarre la bufferisation
ob_start();
ob_implicit_flush(0);
# Insertion du template
include $template;
# Récuperation de la bufférisation
$output = ob_get_clean();
# Hooks spécifiques au thème
ob_start();
eval($plxMotor->plxPlugins->callHook('ThemeEndHead')); # Hook Plugins
$output = str_replace('</head>', ob_get_clean().'</head>', $output);
ob_start();
eval($plxMotor->plxPlugins->callHook('ThemeEndBody')); # Hook Plugins
$output = str_replace('</body>', ob_get_clean().'</body>', $output);
# Hook Plugins
eval($plxMotor->plxPlugins->callHook('IndexEnd'));
# On applique la réécriture d'url si nécessaire
if($plxMotor->aConf['urlrewriting']) {
$output = plxUtils::rel2abs($plxMotor->aConf['racine'], $output);
}
# On impose le charset
header('Content-Type: text/html; charset=' . PLX_CHARSET);
# On applique la compression gzip si nécessaire et disponible
if($plxMotor->aConf['gzip']) {
if($encoding=plxUtils::httpEncoding()) {
header('Content-Encoding: '.$encoding);
$output = gzencode($output,-1,FORCE_GZIP);
}
}
# Restitution écran
echo $output;