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));
|