From e33c245d910e55b8cab407a03e669470509a705d Mon Sep 17 00:00:00 2001 From: Thomas Lange Date: Fri, 10 Mar 2017 21:46:12 +0100 Subject: Several changes have been made in this commit, which together with the previous commits result in version 1.1: + The rules for the Apache and nginx configuration have been changed and redirects now all requests to the index.php. + A router class has been added which now handles all requests that arrives at the application on the index.php. + Short-hand functions "PAGE", "POST" and "USER" for use in templates added to get specific item data by ID. + More language variables have been added to the core language. --- index.php | 105 +++++++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 70 insertions(+), 35 deletions(-) (limited to 'index.php') diff --git a/index.php b/index.php index b07fee6..936abe2 100644 --- a/index.php +++ b/index.php @@ -5,50 +5,85 @@ require_once 'core/application.php'; #=============================================================================== -# TRY: Template\Exception +# Item base directory paths #=============================================================================== -try { - $execSQL = 'SELECT id FROM %s ORDER BY '.Application::get('POST.LIST_SORT').' LIMIT '.Application::get('POST.LIST_SIZE'); - $Statement = $Database->query(sprintf($execSQL, Post\Attribute::TABLE)); +$PAGEPATH = Application::get('PAGE.DIRECTORY'); +$POSTPATH = Application::get('POST.DIRECTORY'); +$USERPATH = Application::get('USER.DIRECTORY'); - $postIDs = $Statement->fetchAll($Database::FETCH_COLUMN); +#=============================================================================== +# ROUTE: Item +#=============================================================================== +Router::add("{$PAGEPATH}/([^/]+)/", function($param) { require 'system/page/main.php'; }); +Router::add("{$POSTPATH}/([^/]+)/", function($param) { require 'system/post/main.php'; }); +Router::add("{$USERPATH}/([^/]+)/", function($param) { require 'system/user/main.php'; }); + +#=============================================================================== +# ROUTE: Item overview +#=============================================================================== +Router::add("{$PAGEPATH}/", function() { require 'system/page/list.php'; }); +Router::add("{$POSTPATH}/", function() { require 'system/post/list.php'; }); +Router::add("{$USERPATH}/", function() { require 'system/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 'system/home.php'; +}); - foreach($postIDs as $postID) { - try { - $Post = Post\Factory::build($postID); - $User = User\Factory::build($Post->attr('user')); +#=============================================================================== +# ROUTE: Feed +#=============================================================================== +Router::add('feed/', function() { + require 'system/feed/main.php'; +}); - $ItemTemplate = generatePostItemTemplate($Post, $User); +#=============================================================================== +# ROUTE: Feed [item type only] +#=============================================================================== +Router::add('feed/(page|post)/', function($param) { + require 'system/feed/main.php'; +}); - $posts[] = $ItemTemplate; - } - catch(Post\Exception $Exception){} - catch(User\Exception $Exception){} - } +#=============================================================================== +# ROUTE: Search +#=============================================================================== +Router::add('search/', function() { + require 'system/search/main.php'; +}); - $HomeTemplate = Template\Factory::build('home'); - $HomeTemplate->set('PAGINATION', [ - 'HTML' => generatePostNaviTemplate(1) - ]); - $HomeTemplate->set('LIST', [ - 'POSTS' => $posts ?? [] - ]); +#=============================================================================== +# REDIRECT: Feed (trailing slash) +#=============================================================================== +Router::addRedirect('feed', Application::getURL('feed/')); - $MainTemplate = Template\Factory::build('main'); - $MainTemplate->set('HTML', $HomeTemplate); - $MainTemplate->set('HEAD', [ - 'NAME' => Application::get('BLOGMETA.HOME'), - 'DESC' => Application::get('BLOGMETA.NAME').' – '.Application::get('BLOGMETA.DESC'), - 'PERM' => Application::getURL() - ]); +#=============================================================================== +# REDIRECT: Feed [posts or pages] (trailing slash) +#=============================================================================== +Router::addRedirect('feed/(page|post)', Application::getURL('feed/$1/')); - echo $MainTemplate; -} +#=============================================================================== +# REDIRECT: Search (trailing slash) +#=============================================================================== +Router::addRedirect('search', Application::getURL('search/')); #=============================================================================== -# CATCH: Template\Exception +# Execute router and route requests #=============================================================================== -catch(Template\Exception $Exception) { - $Exception->defaultHandler(); -} +Router::execute(parse_url(HTTP::requestURI(), PHP_URL_PATH)); ?> \ No newline at end of file -- cgit v1.2.3