getSettings(); $themes = (new Themes())->getThemes(); //$config->getThemes(); $template = "dash/settings.twig"; $member = Session::get("member"); $form_token = Session::get("form_token"); $updated = new \Moment\Moment($settings["global"]["last_backup"]); $pageOptions = [ "title" => "Dash Settings", "private" => $settings["global"]["private"], "renderOnSave" => $settings["global"]["renderOnSave"], "background" => $settings["global"]["background"], "member" => $member, "ftoken" => $form_token, "siteTitle" => $settings["global"]["title"], "baseUrl" => $settings["global"]["base_url"], "desc" => $settings["global"]["descriptions"], "lastBackup" => $updated->format("Y M D d"), "currentTheme" => $settings["global"]["theme"], "themes" => $themes, "apiStatus" => isset($settings["global"]["externalAPI"]) ? $settings["global"]["externalAPI"] : "false", "dynamicRenderStatus" => isset( $settings["global"]["dynamicRender"] ) ? $settings["global"]["dynamicRender"] : "false", "mailOption" => $settings["email"]["active"], "mailConfig" => $settings["email"], "status" => Session::active(), ]; } else { header("Location: /dashboard"); die(); } break; case "navigation": if (Session::active()) { $config = new Settings(); $settings = $config->getSettings(); $template = "dash/navigation.twig"; $pageOptions = [ "title" => "Edit Dash Navigation", "status" => Session::active(), "menu" => $settings["menu"], ]; } else { header("Location: /dashboard"); die(); } break; case "pages": if (Session::active()) { $currentPage = isset($args["fourth"]) ? $args["fourth"] : 1; $filter = isset($args["third"]) ? $args["third"] : "all"; $data = (new Book())->getPages($currentPage, 4, $filter); $template = "dash/book.twig"; $pageOptions = [ "title" => "Contents", "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"]; $uuid = $args["fourth"]; switch ($mode) { case "edit": $page = (new Book())->findPageById($uuid); $views = []; if (str_contains($page["layout"], "index")) { $views = (new Themes())->getCustomIndex(); } else { $views = (new Themes())->getCustomViews(); } $imageList = explode(",", $page["feature"]); $fileList = explode(",", $page["files"]); $images = []; $files = []; foreach ($imageList as $item) { $image = trim($item); if (!empty($image)) { array_push($images, $image); } } foreach ($fileList as $item) { $file = trim($item); if (!empty($file)) { array_push($files, $file); } } $pageOptions = [ "title" => "Fipamo | Edit Page", "page" => $page, "mode" => $mode, "token" => Session::get("form_token"), "status" => Session::active(), "images" => $images, "files" => $files, "views" => $views, ]; break; case "preview": $config = new Settings(); $settings = $config->getSettings(); $loader = new \Twig\Loader\FilesystemLoader( "../content/themes" ); $display = new \Twig\Environment($loader, []); $book = new Book(); $page = $book->findPageById($uuid); $pageOptions = Sorting::page($page); $preview = $settings["global"]["theme"] . "/" . $page["layout"] . ".twig"; $html = $display->render($preview, $pageOptions); $response->getBody()->write($html); return $response; break; default: $pageOptions = [ "title" => "Fipamo | Create Page", "token" => Session::get("form_token"), "mode" => $mode, "status" => Session::active(), ]; break; } } else { header("Location: /dashboard"); die(); } break; case "logout": Session::kill(); header("Location: /dashboard"); die(); break; case "reset-password": $template = "dash/reset-password.twig"; $pageOptions = [ "title" => "Reset Password", ]; break; default: $template = "dash/start.twig"; if (Session::active()) { $pageOptions = [ "title" => "Welcome Back", "status" => Session::active(), "data" => (new Book())->getPages(1, 4), ]; } else { $pageOptions = [ "title" => "Welcome to Fipamo", "status" => Session::active(), ]; } break; } } else { $template = "dash/init.twig"; $pageOptions = ["title" => "Fipamo Setup"]; } return $view->render($response, $template, $pageOptions); } }