aboutsummaryrefslogtreecommitdiffstats
path: root/index.php
blob: a96d42359145c5a49a962ab8af3cb526cd000eb1 (plain)
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
<?php
#===============================================================================
# INCLUDE: Main configuration
#===============================================================================
require_once 'core/application.php';

#===============================================================================
# Item base directory paths
#===============================================================================
$PAGEPATH = Application::get('PAGE.DIRECTORY');
$POSTPATH = Application::get('POST.DIRECTORY');
$USERPATH = Application::get('USER.DIRECTORY');

#===============================================================================
# ROUTE: Item
#===============================================================================
Router::add("{$PAGEPATH}/([^/]+)/", function($param) { require 'core/include/page/main.php'; });
Router::add("{$POSTPATH}/([^/]+)/", function($param) { require 'core/include/post/main.php'; });
Router::add("{$USERPATH}/([^/]+)/", function($param) { require 'core/include/user/main.php'; });

#===============================================================================
# ROUTE: Item overview
#===============================================================================
Router::add("{$PAGEPATH}/", function() { require 'core/include/page/list.php'; });
Router::add("{$POSTPATH}/", function() { require 'core/include/post/list.php'; });
Router::add("{$USERPATH}/", function() { require 'core/include/user/list.php'; });

#===============================================================================
# REDIRECT: Item (trailing slash)
#===============================================================================
Router::addRedirect("{$PAGEPATH}/([^/]+)", Application::getPageURL('$1/'));
Router::addRedirect("{$POSTPATH}/([^/]+)", Application::getPostURL('$1/'));
Router::addRedirect("{$USERPATH}/([^/]+)", Application::getUserURL('$1/'));

#===============================================================================
# REDIRECT: Item overview (trailing slash)
#===============================================================================
Router::addRedirect("{$PAGEPATH}", Application::getPageURL());
Router::addRedirect("{$POSTPATH}", Application::getPostURL());
Router::addRedirect("{$USERPATH}", Application::getUserURL());

#===============================================================================
# ROUTE: Home
#===============================================================================
Router::add('', function() {
	require 'core/include/home.php';
});

#===============================================================================
# ROUTE: Feed
#===============================================================================
Router::add('feed/', function() {
	require 'core/include/feed/main.php';
});

#===============================================================================
# ROUTE: Feed [item type only]
#===============================================================================
Router::add('feed/(page|post)/', function($param) {
	require 'core/include/feed/main.php';
});

#===============================================================================
# ROUTE: Search
#===============================================================================
Router::add('search/', function() {
	require 'core/include/search/main.php';
});

#===============================================================================
# REDIRECT: Feed (trailing slash)
#===============================================================================
Router::addRedirect('feed', Application::getURL('feed/'));

#===============================================================================
# REDIRECT: Feed [posts or pages] (trailing slash)
#===============================================================================
Router::addRedirect('feed/(page|post)', Application::getURL('feed/$1/'));

#===============================================================================
# REDIRECT: Search (trailing slash)
#===============================================================================
Router::addRedirect('search', Application::getURL('search/'));

#===============================================================================
# REDIRECT: Favicon
#===============================================================================
Router::addRedirect('favicon.ico', Application::getTemplateURL('rsrc/favicon.ico'));

#===============================================================================
# Execute router and route requests
#===============================================================================
Router::execute(parse_url(HTTP::requestURI(), PHP_URL_PATH));
?>