public function render() { $uri = Template::uri_resolve(); if (isset($uri['start']) && $uri['start'] === true) { // $content = $this->conn->select('pfx_pages', '*', 'startpage', 1)[0]; $active_theme_id = $this->conn->select("pfx_theme_settings", "active_theme_id"); $active_theme_id = (int) $active_theme_id[0]["active_theme_id"]; $content = $this->conn->query("SELECT * FROM pfx_pages WHERE startpage = 1 && theme_id = 6")[0]; // var_dump($content); return $content; } $admin = $uri['is_admin_page']; $params = count($uri['uris']); if (!$admin) { // assume we start from the 'beginning' $segments = $uri['uris']; $content = $this->conn->select('pfx_pages', '*', 'slug', $segments[0])[0]; // but if we have a category f.e /category/page — could be more though if ($params > 1) { // im inner joining our category, only fetching the title though.. $sql = "SELECT\n pfx_pages.*,\n pfx_categories.category_title\n FROM pfx_pages\n INNER JOIN pfx_categories\n ON pfx_categories.id = pfx_pages.categories\n WHERE pfx_pages.slug = '{$segments['1']}'"; $sth = $this->pdo->prepare($sql); $sth->execute(); $content = $sth->fetchAll($this->pdo::FETCH_ASSOC); $content = $content[0]; } if ($content === FALSE) { Template::not_found(); } return $content; } else { if ($admin) { // routing inside admin $admin_pages = ADMINPATH . '/pages'; $uris = $uri['uris']; $queries = isset($uri['queries']) ? $uri['queries'] : []; $page_slug = 'dashboard'; $content['editable'] = false; if ($params > 1) { $fp = $admin_pages . '/' . $uris[1] . '.php'; $page_slug = $uris[1]; if (file_exists($fp)) { if (count($queries) === 0) { $content['content'] = Template::get($fp); } else { if (count($queries) > 0) { $query_section_fp = $admin_pages . '/sections/' . $queries['section'] . '.php'; $page_slug .= ' ' . $queries['section']; if (isset($queries['preview']) && $queries['preview'] !== '') { // If preview $query_preview = $this->conn->select('pfx_pages', '*', 'id', $queries['preview']); $content['editable'] = true; $content['id'] = $query_preview[0]['id']; $content['content'] = $query_preview[0]['content']; } else { if (isset($queries['edit']) && $queries['edit'] !== '') { // If edit $query_edit = $this->conn->select('pfx_pages', '*', 'id', $queries['edit']); $content['editable'] = 'active'; $content['id'] = $query_edit[0]['id']; $content['content'] = $query_edit[0]['content']; } else { $content['editable'] = false; if (file_exists($query_section_fp)) { $content['content'] = Template::get($query_section_fp, false); } else { Template::not_found(); } } } } } } else { Template::not_found(); } } else { if ($params === 1) { $dashboard_path = $admin_pages . '/dashboard.php'; if (file_exists($dashboard_path)) { $content['content'] = Template::get($dashboard_path); } else { Template::not_found(); } } } $content['page-slug'] = $page_slug; $content['admin'] = $uri['is_admin_page']; return $content; } } }