<?php
							 | 
						|
								/**
							 | 
						|
								 * Created by PhpStorm.
							 | 
						|
								 * User: mhaaz
							 | 
						|
								 * Date: 11/24/2017
							 | 
						|
								 * Time: 10:50 AM
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								require 'vendor/autoload.php';
							 | 
						|
								require 'include/functions.php';
							 | 
						|
								
							 | 
						|
								$config = [
							 | 
						|
								    'settings' => [
							 | 
						|
								        'displayErrorDetails' => true,
							 | 
						|
								    ],
							 | 
						|
								];
							 | 
						|
								
							 | 
						|
								$app = new Slim\App($config);
							 | 
						|
								
							 | 
						|
								// Fetch DI Container
							 | 
						|
								$container = $app->getContainer();
							 | 
						|
								
							 | 
						|
								// Register Twig View helper
							 | 
						|
								$container['view'] = function ($c) {
							 | 
						|
								    $view = new \Slim\Views\Twig('include/views', [
							 | 
						|
								        //'cache' => 'include/cache'
							 | 
						|
								    ]);
							 | 
						|
								
							 | 
						|
								    // Instantiate and add Slim specific extension
							 | 
						|
								    $basePath = rtrim(str_ireplace('index.php', '', $c['request']->getUri()->getBasePath()), '/');
							 | 
						|
								    $view->addExtension(new \Slim\Views\TwigExtension($c['router'], $basePath));
							 | 
						|
								
							 | 
						|
								    return $view;
							 | 
						|
								};
							 | 
						|
								
							 | 
						|
								//Override the default Not Found Handler
							 | 
						|
								$container['notFoundHandler'] = function ($c) {
							 | 
						|
								    return function ($request, $response) use ($c) {
							 | 
						|
								        return $c['view']->render($response->withStatus(404), '404.html', [
							 | 
						|
								            "myMagic" => "Let's roll"
							 | 
						|
								        ]);
							 | 
						|
								    };
							 | 
						|
								};
							 | 
						|
								
							 | 
						|
								$app->get('/', function ($request, $response, $args){
							 | 
						|
								    $page = 1;
							 | 
						|
								    $page = $page ? (int)$page : 1;
							 | 
						|
								
							 | 
						|
								    $posts = find_posts($page);
							 | 
						|
								    $pagination = has_pagination($page);
							 | 
						|
								    $random = random_posts();
							 | 
						|
								
							 | 
						|
								    return $this->view->render($response, 'index.new.html', [
							 | 
						|
								        'posts' => $posts,
							 | 
						|
								        'pagination' => $pagination,
							 | 
						|
								        'page' => $page,
							 | 
						|
								        'random'=> $random
							 | 
						|
								    ]);
							 | 
						|
								    //return $response->write(print_r($pageination,true));
							 | 
						|
								});
							 | 
						|
								$app->get('/page=[{page:[0-9]+}]', function ($request, $response, $args){
							 | 
						|
								    if($args['page'] != 1){
							 | 
						|
								        $page = $args['page'];
							 | 
						|
								    }else{
							 | 
						|
								        return $response->withRedirect('/');
							 | 
						|
								    }
							 | 
						|
								    $page = $page ? (int)$page : 1;
							 | 
						|
								
							 | 
						|
								    $posts = find_posts($page);
							 | 
						|
								    if(empty($posts)){
							 | 
						|
								        return $this->view->render($response->withStatus(404), "404.html");
							 | 
						|
								
							 | 
						|
								    }
							 | 
						|
								    $pagination = has_pagination($page);
							 | 
						|
								    $random = random_posts();
							 | 
						|
								
							 | 
						|
								    return $this->view->render($response, 'index.new.html', [
							 | 
						|
								        'posts' => $posts,
							 | 
						|
								        'pagination' => $pagination,
							 | 
						|
								        'page' => $page,
							 | 
						|
								        'random'=> $random
							 | 
						|
								    ]);
							 | 
						|
								    //return $response->write(print_r($pageination,true));
							 | 
						|
								});
							 | 
						|
								
							 | 
						|
								$app->get('/{year:[0-9]{4}+}/{month:[0-9]{2}+}/{name}', function ($request, $response, $args){
							 | 
						|
								    $post = find_post($args['year'],$args['month'],$args['name']);
							 | 
						|
								    $random = random_posts();
							 | 
						|
								
							 | 
						|
								    if(empty($post)){
							 | 
						|
								        return $this->view->render($response->withStatus(404), "404.html");
							 | 
						|
								
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    return $this->view->render($response, 'post.new.html', [
							 | 
						|
								        'post' => $post,
							 | 
						|
								        'random'=> $random
							 | 
						|
								    ]);
							 | 
						|
								});
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								$app->run();
							 |