getSettings(); $view = Twig::fromRequest($request); //checks dynamic render flag for site render status if ($settings['global']['dynamicRender']) { if ($settings['global']['dynamicRender'] == 'true') { $loader = new \Twig\Loader\FilesystemLoader('../content/themes'); $display = new \Twig\Environment($loader, []); $template = ''; $pageOptions = []; $pageInfo = [ 'keywords' => isset($settings['global']['keywords']) ? $settings['global']['keywords'] : 'fipamo, blog, jamstack, php, markdown, js', 'description' => $settings['global']['descriptions'], 'image' => $settings['global']['base_url'] . $settings['global']['background'], 'baseURL' => $settings['global']['base_url'], ]; if (isset($args['first'])) { switch ($args['first']) { case 'tags': $template = $settings['global']['theme'] . '/tags.twig'; $tag = trim($args['second']); $taglist = Sorting::tags(); $item = find($taglist, ['tag_name' => $tag]); $pageOptions = [ 'title' => 'Pages Tagged as ' . $item['tag_name'], 'background' => $pageInfo['image'], 'tag_list' => $item['pages'], 'info' => $pageInfo, 'menu' => $settings['menu'], 'dynamicRender' => $settings['global']['dynamicRender'], ]; break; case 'archives': $archive = Sorting::archive(); $template = $settings['global']['theme'] . '/archive.twig'; $pageOptions = [ 'title' => 'Archive', 'background' => $pageInfo['image'], 'archives' => $archive, 'info' => $pageInfo, 'menu' => $settings['menu'], 'dynamicRender' => $settings['global']['dynamicRender'], ]; break; default: //check if page is a menu item, if not render along path as usual $page = []; $book = new Book(); if (is_numeric($args['first'])) { $page = $book->findPageBySlug($args['third']); } else { $page = $book->findPageBySlug($args['first']); } $template = $settings['global']['theme'] . '/' . $page['layout'] . '.twig'; $pageOptions = Sorting::page($page); break; } } else { //index $template = $settings['global']['theme'] . '/' . $page['layout'] . '.twig'; $book = new Book(''); $page = $book->findPageBySlug(); $pageOptions = Sorting::page($page); } $html = $display->render($template, $pageOptions); $response->getBody()->write($html); return $response; } else { //if dynamic flag is false, load up html $view = Twig::fromRequest($request); $html = file_get_contents('../public/index.html'); $response->getBody()->write($html); return $response; } } else { //if flag is not present, default to static html $view = Twig::fromRequest($request); $html = file_get_contents('../public/index.html'); $response->getBody()->write($html); return $response; } } }