aboutsummaryrefslogtreecommitdiffstats
path: root/index.php
diff options
context:
space:
mode:
Diffstat (limited to 'index.php')
-rw-r--r--index.php49
1 files changed, 15 insertions, 34 deletions
diff --git a/index.php b/index.php
index 8f6743b..a7d0ce6 100644
--- a/index.php
+++ b/index.php
@@ -5,44 +5,25 @@
require 'core/application.php';
#===============================================================================
-# Item base directory paths
+# ROUTE: Item controllers
#===============================================================================
-$CATEGORYPATH = Application::get('CATEGORY.DIRECTORY');
-$PAGEPATH = Application::get('PAGE.DIRECTORY');
-$POSTPATH = Application::get('POST.DIRECTORY');
-$USERPATH = Application::get('USER.DIRECTORY');
+foreach(['category', 'page', 'post', 'user'] as $item) {
+ $slug = Application::get(strtoupper($item).'.DIRECTORY');
-#===============================================================================
-# ROUTE: Item
-#===============================================================================
-Router::add("{$CATEGORYPATH}/([^/]+)/", function($param) { require 'core/include/category/main.php'; });
-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'; });
+ # Item list controller
+ Router::add("{$slug}/", function() use($item) {
+ require "core/include/{$item}/list.php";
+ });
-#===============================================================================
-# ROUTE: Item overview
-#===============================================================================
-Router::add("{$CATEGORYPATH}/", function() { require 'core/include/category/list.php'; });
-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'; });
+ # Item show controller
+ Router::add("{$slug}/([^/]+)/", function($param) use($item) {
+ require "core/include/{$item}/main.php";
+ });
-#===============================================================================
-# REDIRECT: Item (trailing slash)
-#===============================================================================
-Router::addRedirect("{$CATEGORYPATH}/([^/]+)", Application::getCategoryURL('$1/'));
-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("{$CATEGORYPATH}", Application::getCategoryURL());
-Router::addRedirect("{$PAGEPATH}", Application::getPageURL());
-Router::addRedirect("{$POSTPATH}", Application::getPostURL());
-Router::addRedirect("{$USERPATH}", Application::getUserURL());
+ # Item controllers (ensure trailing slashes)
+ Router::addRedirect($slug, Application::getURL("{$slug}/"));
+ Router::addRedirect("{$slug}/([^/]+)", Application::getURL("{$slug}/$1/"));
+}
#===============================================================================
# ROUTE: Home