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