aboutsummaryrefslogtreecommitdiffstats
path: root/index.php
blob: a7d0ce6ec9d1b36489bfd3fe556d35bc5e4b549f (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
<?php
#===============================================================================
# INCLUDE: Initialization
#===============================================================================
require 'core/application.php';

#===============================================================================
# ROUTE: Item controllers
#===============================================================================
foreach(['category', 'page', 'post', 'user'] as $item) {
	$slug = Application::get(strtoupper($item).'.DIRECTORY');

	# Item list controller
	Router::add("{$slug}/", function() use($item) {
		require "core/include/{$item}/list.php";
	});

	# Item show controller
	Router::add("{$slug}/([^/]+)/", function($param) use($item) {
		require "core/include/{$item}/main.php";
	});

	# Item controllers (ensure trailing slashes)
	Router::addRedirect($slug, Application::getURL("{$slug}/"));
	Router::addRedirect("{$slug}/([^/]+)", Application::getURL("{$slug}/$1/"));
}

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

#===============================================================================
# ROUTE: Feed
#===============================================================================
Router::add('feed/', function() {
	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: Search (trailing slash)
#===============================================================================
Router::addRedirect('search', Application::getURL('search/'));

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

#===============================================================================
# BACKWARD COMPATIBILITY: Redirect to the new post feed URL
#===============================================================================
Router::addRedirect('feed/post/', Application::getURL('feed/'), 301);

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