-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.php
101 lines (87 loc) · 2.44 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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
/**
* Index
*
* Where it all starts
*
* @package GetSimple
* @subpackage FrontEnd
*/
# Setup inclusions
$load['plugin'] = true;
if (file_exists('gsconfig.php')) {
require_once('gsconfig.php');
}
# Relative
if (defined('GSADMIN')) {
$GSADMIN = GSADMIN;
} else {
$GSADMIN = 'admin';
}
$admin_relative = $GSADMIN.'/inc/';
$lang_relative = $GSADMIN.'/';
$base = true;
# Include common.php
include($GSADMIN.'/inc/common.php');
# get page id (url slug) that is being passed via .htaccess mod_rewrite
if (isset($_GET['id'])){
$id = str_replace ('..','',$_GET['id']);
$id = str_replace ('/','',$id);
$id = lowercase($id);
} else {
$id = "index";
}
# define page, spit out 404 if it doesn't exist
$file = GSDATAPAGESPATH . $id .'.xml';
$file_404 = GSDATAOTHERPATH . '404.xml';
$user_created_404 = GSDATAPAGESPATH . '404.xml';
if (! file_exists($file)) {
if (file_exists($user_created_404)) {
//user created their own 404 page, which overrides the default 404 message
$file = $user_created_404;
} elseif (file_exists($file_404)) {
$file = $file_404;
}
exec_action('error-404');
}
# get data from page
$data_index = getXML($file);
$title = $data_index->title;
$date = $data_index->pubDate;
$metak = $data_index->meta;
$metad = $data_index->metad;
$url = $data_index->url;
$content = $data_index->content;
$parent = $data_index->parent;
$template_file = $data_index->template;
$private = $data_index->private;
# if page is private, check user
if ($private == 'Y') {
if (isset($USR) && $USR == get_cookie('GS_ADMIN_USERNAME')) {
//ok, allow the person to see it then
} else {
redirect('404');
}
}
# if page does not exist, throw 404 error
if ($url == '404') {
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
}
# check for correctly formed url
if (defined('GSCANONICAL')) {
if ($_SERVER['REQUEST_URI'] != find_url($url, $parent, 'relative')) {
redirect(find_url($url, $parent));
}
}
# include the functions.php page if it exists within the theme
if ( file_exists(GSTHEMESPATH .$TEMPLATE."/functions.php") ) {
include(GSTHEMESPATH .$TEMPLATE."/functions.php");
}
# call pretemplate Hook
exec_action('index-pretemplate');
# include the template and template file set within theme.php and each page
if ( (!file_exists(GSTHEMESPATH .$TEMPLATE."/".$template_file)) || ($template_file == '') ) { $template_file = "template.php"; }
include(GSTHEMESPATH .$TEMPLATE."/".$template_file);
# call posttemplate Hook
exec_action('index-posttemplate');
?>