You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.0 KiB
PHP
70 lines
2.0 KiB
PHP
<?php
|
|
|
|
require "vendor/autoload.php";
|
|
|
|
class ThemeEngine
|
|
{
|
|
public $data = [];
|
|
public $loader;
|
|
public $twig;
|
|
public function __construct()
|
|
{
|
|
$this->data = json_decode(file_get_contents("./config.json"), true);
|
|
$this->loader = new \Twig\Loader\FilesystemLoader("src/themes/");
|
|
$this->twig = new \Twig\Environment($this->loader, []);
|
|
$this->router($_SERVER["REQUEST_URI"]);
|
|
}
|
|
|
|
public function router(string $request)
|
|
{
|
|
switch ($request) {
|
|
case "/":
|
|
$recent = $this->data["recent_posts"];
|
|
$featured = $this->data["featured_posts"];
|
|
echo $this->twig->render(
|
|
"theme-fipamo-default/fipamo-default/index.twig",
|
|
[
|
|
"debug" => true,
|
|
"title" => "This is Fipamo",
|
|
"background" =>
|
|
"/src/themes/theme-fipamo-default/fipamo-default/assets/images/global/default-bg.jpg",
|
|
"recent" => $recent,
|
|
"featured" => $featured,
|
|
]
|
|
);
|
|
break;
|
|
case "/tags":
|
|
$tags = $this->data["tag_list"];
|
|
echo $this->twig->render(
|
|
"theme-fipamo-default/fipamo-default/tags.twig",
|
|
[
|
|
"debug" => true,
|
|
"title" => "Pages Tagged as Tag",
|
|
"background" =>
|
|
"/src/themes/theme-fipamo-default/fipamo-default/assets/images/global/default-bg.jpg",
|
|
"tag_list" => $tags,
|
|
]
|
|
);
|
|
case "/archive":
|
|
$archive = $this->data["archives"];
|
|
echo $this->twig->render(
|
|
"theme-fipamo-default/fipamo-default/archive.twig",
|
|
[
|
|
"debug" => true,
|
|
"title" => "Archive",
|
|
"background" =>
|
|
"/src/themes/theme-fipamo-default/fipamo-default/assets/images/global/default-bg.jpg",
|
|
"archives" => $archive,
|
|
]
|
|
);
|
|
break;
|
|
default:
|
|
http_response_code(404);
|
|
require __DIR__ . "/views/404.php";
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
new ThemeEngine();
|