/* * HttpError doesn't have access to * vars outside of here. */ $render = new render(); $config = new config(); $build = new page(); $pages = new db("pages"); $request = $_SERVER['REQUEST_URI']; $found = false; foreach ($pages->all() as $page) { $component = array_keys($page)[0]; if ($page["endpoint"] != "/") { //Add slash to URL $page["endpoint"] = "/" . $page["endpoint"]; } if ($page["endpoint"] == $request) { $found = $page; } } if ($found) { $endpoint = "app/cache/" . $found['page'] . ".html"; if (file_exists($endpoint)) { die(file_get_contents($endpoint)); } $build->render($found); } else { $render->render("admin.error", ["system" => $config->system]); } die; });
function render($page, $save = false) { $render = new render(); $components = new db("components"); $keys = array_keys($page); $html = ""; foreach ($keys as $key) { if ($key != "page" && $key != "endpoint" && $key != "layout") { $strkey = str_replace("_", " ", $key); $query = $components->get($strkey); if (is_array($query)) { $page[$key]["template"] = $query['filename']; $page[$key]["key"] = $key; } } } $title = $page['page']; $endpoint = $page['endpoint']; $layout = isset($page['layout']) ? $page['layout'] : false; $variables = new db("variables"); $pages = new db("pages"); $layouts = new db("layouts"); $headFoot = false; $array = array(); $names = array(); $values = array(); unset($page['page']); unset($page['endpoint']); unset($page['layout']); foreach ($page as $item) { foreach ($item as $k => $x) { if (is_array($x)) { foreach ($x as $n => $v) { if ($n == "name") { $names[] = $v; } if ($n == "value") { if ($v == "on") { $v = true; } $values[] = $v; } } } } $array = array_combine($names, $values); $array["variables"] = $variables->all(); $array["pages"] = $pages->all(); if ($layout) { $custom = $layouts->get($layout); $array['custom'] = array("js" => $custom['customjs'], "css" => $custom['customcss']); } if ($render->exists("header.twig", "frontend") && $render->exists("footer.twig", "frontend")) { $headFoot = true; $html .= $render->render("layout/header.twig", $array, "frontend"); } if (isset($item['template'])) { $html .= $render->render("component/" . $item['template'], $array, "frontend"); } else { $html .= "<p>Component Not Found.</p>"; } if ($headFoot) { $html .= $render->render("layout/footer.twig", $array, "frontend"); } } if ($save) { return $html; } echo $html; die; }
$render->render("admin.variables", ["system" => $config->system, "variables" => $db->all()]); }); //Extensions $route->respond("/extensions", function ($request, $response, $service, $app) { $app->isUser; $render = new render(); $config = new config(); $db = new db("extensions"); if (isset($request->title) && isset($request->filename) && strpos($request->filename, '.php') !== FALSE) { $db->set($request->title, $request->filename); } if (isset($_GET['delete'])) { $db->delete($_GET['delete']); } $render->render("admin.extensions", ["system" => $config->system, "extensions" => $db->all()]); }); //Extension $route->respond("/extension/[:extension]", function ($request, $response, $service, $app) { $app->isUser; if (!isset($request->extension) || !file_exists("app/resources/backend/extensions/" . $request->extension . ".twig")) { $response->redirect(BACKEND . "/pages"); return; } $ext = $request->extension; $render = new render(); $config = new config(); $db = new db("extensions"); $render->render("../extensions/{$ext}", ["system" => $config->system, "extensions" => $db->all()]); }); }); $route->dispatch();