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.
94 lines
2.7 KiB
PHP
94 lines
2.7 KiB
PHP
<?php
|
|
use Psr\Http\Message\ResponseInterface;
|
|
use Psr\Http\Message\ServerRequestInterface;
|
|
use Slim\Views\Twig;
|
|
|
|
include "../brain/data/Book.inc.php";
|
|
|
|
class DashControl
|
|
{
|
|
public static function start(
|
|
ServerRequestInterface $request,
|
|
ResponseInterface $response,
|
|
array $args
|
|
): ResponseInterface {
|
|
$view = Twig::fromRequest($request);
|
|
$pageOptions = [];
|
|
$template = "";
|
|
switch (isset($args["second"]) ? $args["second"] : "index") {
|
|
case "pages":
|
|
if (Session::active()) {
|
|
$currentPage = isset($args["fourth"]) ? $args["fourth"] : 1;
|
|
$filter = isset($args["third"]) ? $args["third"] : "all";
|
|
$data = (new Book("../content/pages"))->getPages(
|
|
$currentPage,
|
|
4,
|
|
$filter
|
|
);
|
|
$template = "dash/book.twig";
|
|
$pageOptions = [
|
|
"entryCount" => $data["entryCount"],
|
|
"numOfPages" => $data["numOfPages"],
|
|
"currentPage" => $currentPage,
|
|
"filter" => $data["paginate"]["sort"],
|
|
"stats" => $data["stats"],
|
|
"pages" => $data["pages"],
|
|
"paginate" => $data["paginate"],
|
|
"status" => Session::active(),
|
|
];
|
|
} else {
|
|
header("Location: /dashboard");
|
|
die();
|
|
}
|
|
break;
|
|
case "page":
|
|
if (Session::active()) {
|
|
$template = "dash/page-edit.twig";
|
|
$mode = $args["third"];
|
|
if ($mode == "edit") {
|
|
$uuid = $args["fourth"];
|
|
|
|
$pageOptions = [
|
|
"title" => "Fipamo | Edit Page",
|
|
"page" => (new Book("../content/pages"))->findPageById($uuid),
|
|
"mode" => $mode,
|
|
"status" => Session::active(),
|
|
];
|
|
} else {
|
|
$pageOptions = [
|
|
"title" => "Fipamo | Create Page",
|
|
"mode" => $mode,
|
|
"status" => Session::active(),
|
|
];
|
|
}
|
|
} else {
|
|
header("Location: /dashboard");
|
|
die();
|
|
}
|
|
|
|
break;
|
|
case "logout":
|
|
Session::kill();
|
|
header("Location: /dashboard");
|
|
die();
|
|
break;
|
|
default:
|
|
$template = "dash/start.twig";
|
|
if (Session::active()) {
|
|
$pageOptions = [
|
|
"title" => "Welcome Back",
|
|
"status" => Session::active(),
|
|
"data" => (new Book("../content/pages"))->getPages(1, 4),
|
|
];
|
|
} else {
|
|
$pageOptions = [
|
|
"title" => "Welcome to Fipamo",
|
|
"status" => Session::active(),
|
|
];
|
|
}
|
|
break;
|
|
}
|
|
return $view->render($response, $template, $pageOptions);
|
|
}
|
|
}
|