From 4484f88d8d6594221b4d08dabeea5e724de5ec4a Mon Sep 17 00:00:00 2001 From: Nick Yeoman Date: Sat, 4 Jul 2026 07:43:33 -0700 Subject: [PATCH] Changed variables. --- controllers/auth/login.php | 6 +- controllers/auth/logout.php | 6 +- controllers/authenticate.php | 52 +++++++------- controllers/coming-soon.php | 4 +- controllers/create_admin.php | 14 ++-- controllers/dashboard.php | 10 +-- controllers/editpage.php | 20 +++--- controllers/init.php | 60 ++++++++-------- controllers/message_delete.php | 14 ++-- controllers/message_edit.php | 16 ++--- controllers/message_save.php | 44 ++++++------ controllers/messages.php | 14 ++-- controllers/pages.php | 14 ++-- controllers/samples.php | 4 +- controllers/savepage.php | 68 +++++++++---------- controllers/settings.php | 10 +-- controllers/sitemap.php | 6 +- skeleton/novaconium/App/controllers/index.php | 2 +- skeleton/novaconium/App/controllers/page.php | 21 +++--- .../novaconium/App/controllers/robots.php | 2 +- src/Services/TagManager.php | 7 +- 21 files changed, 197 insertions(+), 197 deletions(-) diff --git a/controllers/auth/login.php b/controllers/auth/login.php index 2b2c873..6f44342 100644 --- a/controllers/auth/login.php +++ b/controllers/auth/login.php @@ -1,11 +1,11 @@ withData([ 'title' => 'Novaconium Login Page', 'pageclass' => 'novaconium' ]); // Don't come here if logged in -if ($session->get('username')) { - $redirect->url('/novaconium/dashboard'); +if ($ctx->session->get('username')) { + $ctx->redirect->url('/novaconium/dashboard'); makeitso(); } view('@novacore/auth/login'); diff --git a/controllers/auth/logout.php b/controllers/auth/logout.php index eaa74ce..181be00 100644 --- a/controllers/auth/logout.php +++ b/controllers/auth/logout.php @@ -1,5 +1,5 @@ kill(); -$log->info("Logout - Logout Success - " . $_SERVER['REMOTE_ADDR']); -$redirect->url('/'); +$ctx->session->kill(); +$ctx->log->info("Logout - Logout Success - " . ($_SERVER['REMOTE_ADDR'] ?? 'unknown')); +$ctx->redirect->url('/'); makeitso(); diff --git a/controllers/authenticate.php b/controllers/authenticate.php index 40336e6..b7d6c0b 100644 --- a/controllers/authenticate.php +++ b/controllers/authenticate.php @@ -8,63 +8,63 @@ $url_fail = '/novaconium/login'; // Don't go further if already logged in -if ( !empty($session->get('username')) ) { - $redirect->url($url_success); +if ( !empty($ctx->session->get('username')) ) { + $ctx->redirect->url($url_success); makeitso(); } // Make sure Session Token is correct -if ($session->get('token') != $post->get('token')) { - $messages->addMessage('error', "Invalid Session."); - $log->error("Login Authentication - Invalid Session Token"); +if ($ctx->session->get('token') != $ctx->post->get('token')) { + $ctx->messages->addMessage('error', "Invalid Session."); + $ctx->log->error("Login Authentication - Invalid Session Token"); } // Handle Username -$rawUsername = $post->get('username', null); +$rawUsername = $ctx->post->get('username', null); $cleanUsername = $v->clean($rawUsername); // Clean the input $username = strtolower($cleanUsername); // Convert to lowercase if (!$username) { - $messages->addMessage('error', "No Username given."); -} + $ctx->messages->addMessage('error', "No Username given."); +} // Handle Password -$password = $v->clean($post->get('password', null)); +$password = $v->clean($ctx->post->get('password', null)); if ( empty($password) ) { - $messages->addMessage('error', "Password Empty."); + $ctx->messages->addMessage('error', "Password Empty."); } /************************************************************************************************************* * Query Database ************************************************************************************************************/ -if ($messages->count('error') === 0) { +if ($ctx->messages->count('error') === 0) { $query = "SELECT id, username, email, password, blocked FROM users WHERE username = ? OR email = ?"; - $matched = $db->getRow($query, [$username, $username]); + $matched = $ctx->db->getRow($query, [$username, $username]); if (empty($matched)) { - $messages->addMessage('error', "User or Password incorrect."); - $log->warning("Login Authentication - Login Error, user doesn't exist"); - } + $ctx->messages->addMessage('error', "User or Password incorrect."); + $ctx->log->warning("Login Authentication - Login Error, user doesn't exist"); + } } -if ($messages->count('error') === 0) { +if ($ctx->messages->count('error') === 0) { // Re-apply pepper - $peppered = hash_hmac('sha3-512', $password, $config['secure_key']); + $peppered = hash_hmac('sha3-512', $password, $ctx->config['secure_key']); // Verify hashed password if (!password_verify($peppered, $matched['password'])) { - $messages->addMessage('error', "User or Password incorrect."); - $log->warning("Login Authentication - Login Error, password wrong"); + $ctx->messages->addMessage('error', "User or Password incorrect."); + $ctx->log->warning("Login Authentication - Login Error, password wrong"); } } // Process Login or Redirect -if ($messages->count('error') === 0) { +if ($ctx->messages->count('error') === 0) { $query = "SELECT groupName FROM user_groups WHERE user_id = ?"; - $groups = $db->getRow($query, [$matched['id']]); - $session->set('username', $cleanUsername); - $session->set('group', $groups['groupName']); - $redirect->url($url_success); - $log->info("Login Authentication - Login Success"); + $groups = $ctx->db->getRow($query, [$matched['id']]); + $ctx->session->set('username', $cleanUsername); + $ctx->session->set('group', $groups['groupName']); + $ctx->redirect->url($url_success); + $ctx->log->info("Login Authentication - Login Success"); } else { - $redirect->url($url_fail); + $ctx->redirect->url($url_fail); } diff --git a/controllers/coming-soon.php b/controllers/coming-soon.php index 9e46153..c3118ba 100644 --- a/controllers/coming-soon.php +++ b/controllers/coming-soon.php @@ -1,9 +1,9 @@ withData([ 'title' => 'Coming Soon', 'heading' => 'Coming Soon', 'countdown' => true, 'launch_date' => '2026-01-01T00:00:00' ]); -view('@novacore/coming-soon', $data); +view('@novacore/coming-soon', $ctx->data); diff --git a/controllers/create_admin.php b/controllers/create_admin.php index 3525509..0ada609 100644 --- a/controllers/create_admin.php +++ b/controllers/create_admin.php @@ -6,10 +6,10 @@ use Nickyeoman\Validation; $validate = new Validation\Validate(); $valid = true; -$p = $post->all(); +$p = $ctx->post->all(); // Check secure key -if (empty($p['secure_key']) || $p['secure_key'] !== $config['secure_key']) { +if (empty($p['secure_key']) || $p['secure_key'] !== $ctx->config['secure_key']) { $valid = false; } @@ -31,7 +31,7 @@ if (empty($p['password'])) { $valid = false; } else { // Use pepper + Argon2id - $peppered = hash_hmac('sha3-512', $p['password'], $config['secure_key']); + $peppered = hash_hmac('sha3-512', $p['password'], $ctx->config['secure_key']); $hashed_password = password_hash($peppered, PASSWORD_ARGON2ID); } @@ -45,16 +45,16 @@ if ($valid) { EOSQL; $params = [$name, $hashed_password, $p['email']]; - $db->query($query, $params); - $userid = $db->lastid(); + $ctx->db->query($query, $params); + $userid = $ctx->db->lastid(); // Assign admin group $groupInsertQuery = <<query($groupInsertQuery, [$userid, 'admin']); + $ctx->db->query($groupInsertQuery, [$userid, 'admin']); } // Always redirect at end -$redirect->url('/novaconium'); +$ctx->redirect->url('/novaconium'); diff --git a/controllers/dashboard.php b/controllers/dashboard.php index d707b82..697bf9e 100644 --- a/controllers/dashboard.php +++ b/controllers/dashboard.php @@ -1,14 +1,14 @@ withData([ 'title' => 'Novaconium Dashboard Page', 'pageclass' => 'novaconium', 'pageid' => 'controlPanel' ]); -if ( empty($session->get('username'))) { - $redirect->url('/novaconium/login'); - $messages->error('You are not loggedin'); +if ( empty($ctx->session->get('username'))) { + $ctx->redirect->url('/novaconium/login'); + $ctx->messages->error('You are not loggedin'); makeitso(); } -view('@novacore/dashboard', $data); \ No newline at end of file +view('@novacore/dashboard', $ctx->data); \ No newline at end of file diff --git a/controllers/editpage.php b/controllers/editpage.php index 490b250..de0622b 100644 --- a/controllers/editpage.php +++ b/controllers/editpage.php @@ -1,6 +1,6 @@ withData([ 'title' => 'Novaconium Edit Page', 'pageclass' => 'novaconium', 'pageid' => 'controlPanel', @@ -8,14 +8,14 @@ $data = array_merge($data, [ ]); // Check if logged in -if (empty($session->get('username'))) { - $messages->error('You are not logged in'); - $redirect->url('/novaconium/login'); +if (empty($ctx->session->get('username'))) { + $ctx->messages->error('You are not logged in'); + $ctx->redirect->url('/novaconium/login'); makeitso(); } // Get page ID from router parameters -$pageid = $router->parameters['id'] ?? null; +$pageid = $ctx->router->parameters['id'] ?? null; if (!empty($pageid)) { // Existing page: fetch from database @@ -51,23 +51,23 @@ WHERE p.id = ? GROUP BY p.id; EOSQL; - $data['rows'] = $db->getRow($query, [$pageid]); + $ctx->data['rows'] = $ctx->db->getRow($query, [$pageid]); // If no row is found, treat as new page - if (!$data['rows']) { + if (!$ctx->data['rows']) { $pageid = null; } } if (empty($pageid)) { // New page: set default values for all fields - $data['rows'] = [ + $ctx->data['rows'] = [ 'id' => 'newpage', 'title' => '', 'heading' => '', 'description' => '', 'keywords' => '', - 'author' => $session->get('username') ?? '', + 'author' => $ctx->session->get('username') ?? '', 'slug' => '', 'path' => '', 'intro' => '', @@ -82,4 +82,4 @@ if (empty($pageid)) { } // Render the edit page view -view('@novacore/editpage/index', $data); +view('@novacore/editpage/index', $ctx->data); diff --git a/controllers/init.php b/controllers/init.php index fb660c9..3be54e9 100644 --- a/controllers/init.php +++ b/controllers/init.php @@ -1,22 +1,22 @@ data = [ 'secure_key' => false, 'gen_key' => NULL, 'users_created' => false, 'empty_users' => false, 'show_login' => false, - 'token' => $session->get('token'), + 'token' => $ctx->session->get('token'), 'pageclass' => 'novaconium', 'title' => 'Novaconium Admin' ]; // Check if SECURE KEY is Set in -if ($config['secure_key'] !== null && strlen($config['secure_key']) === 64) { - $data['secure_key'] = true; +if ($ctx->config['secure_key'] !== null && strlen($ctx->config['secure_key']) === 64) { + $ctx->data['secure_key'] = true; } else { - $data['gen_key'] = substr(bin2hex(random_bytes(32)), 0, 64); - $log->warn('secure_key not detected'); + $ctx->data['gen_key'] = substr(bin2hex(random_bytes(32)), 0, 64); + $ctx->log->warn('secure_key not detected'); } // Check if user table exists @@ -26,7 +26,7 @@ FROM information_schema.tables WHERE table_schema = DATABASE() AND TABLE_NAME = 'users'; EOSQL; -$result = $db->query($query); +$result = $ctx->db->query($query); if ($result->num_rows === 0) { $query = <<num_rows === 0) { ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; EOSQL; - $db->query($query); - $data['users_created'] = true; - $log->info('Users Table Created'); + $ctx->db->query($query); + $ctx->data['users_created'] = true; + $ctx->log->info('Users Table Created'); } @@ -59,7 +59,7 @@ FROM information_schema.tables WHERE table_schema = DATABASE() AND TABLE_NAME = 'user_groups'; EOSQL; -$result = $db->query($query); +$result = $ctx->db->query($query); if ($result->num_rows === 0) { $query = <<num_rows === 0) { EOSQL; - $db->query($query); - $log->info('User_groups Table Created'); + $ctx->db->query($query); + $ctx->log->info('User_groups Table Created'); } @@ -84,7 +84,7 @@ FROM information_schema.tables WHERE table_schema = DATABASE() AND TABLE_NAME = 'pages'; EOSQL; -$result = $db->query($query); +$result = $ctx->db->query($query); if ($result->num_rows === 0) { $query = <<num_rows === 0) { ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; EOSQL; - $db->query($query); - $log->info('Pages Table Created'); + $ctx->db->query($query); + $ctx->log->info('Pages Table Created'); } // Check ContactForm Table @@ -120,7 +120,7 @@ FROM information_schema.tables WHERE table_schema = DATABASE() AND TABLE_NAME = 'contactForm'; EOSQL; -$result = $db->query($query); +$result = $ctx->db->query($query); if ($result->num_rows === 0) { $query = <<num_rows === 0) { ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; EOSQL; - $db->query($query); - $log->info('ContactForm Table Created'); + $ctx->db->query($query); + $ctx->log->info('ContactForm Table Created'); } // Check if a user exists -$result = $db->query("SELECT COUNT(*) as total FROM users"); +$result = $ctx->db->query("SELECT COUNT(*) as total FROM users"); $row = $result->fetch_assoc(); if ($row['total'] < 1) { - $data['empty_users'] = true; + $ctx->data['empty_users'] = true; } else { - $log->info('Init Run complete, all sql tables exist with a user.'); + $ctx->log->info('Init Run complete, all sql tables exist with a user.'); // Everything is working, send them to login page - $redirect->url('/novaconium/login'); + $ctx->redirect->url('/novaconium/login'); makeitso(); } @@ -159,7 +159,7 @@ FROM information_schema.tables WHERE table_schema = DATABASE() AND TABLE_NAME = 'tags'; EOSQL; -$result = $db->query($query); +$result = $ctx->db->query($query); if ($result->num_rows === 0) { $query = <<query($query); -$log->info('Tags Table Created'); +$ctx->db->query($query); +$ctx->log->info('Tags Table Created'); } // Check Page Tags Junction Table (after tags table) @@ -181,7 +181,7 @@ FROM information_schema.tables WHERE table_schema = DATABASE() AND TABLE_NAME = 'page_tags'; EOSQL; -$result = $db->query($query); +$result = $ctx->db->query($query); if ($result->num_rows === 0) { $query = <<query($query); -$log->info('Page Tags Junction Table Created'); +$ctx->db->query($query); +$ctx->log->info('Page Tags Junction Table Created'); } -view('@novacore/init', $data); +view('@novacore/init', $ctx->data); diff --git a/controllers/message_delete.php b/controllers/message_delete.php index c3143f9..525ea85 100644 --- a/controllers/message_delete.php +++ b/controllers/message_delete.php @@ -1,15 +1,15 @@ get('username'))) { - $redirect->url('/novaconium/login'); - $messages->error('You are not loggedin'); +if ( empty($ctx->session->get('username'))) { + $ctx->redirect->url('/novaconium/login'); + $ctx->messages->error('You are not loggedin'); makeitso(); } -$messageid = $router->parameters['id']; +$messageid = $ctx->router->parameters['id']; $query="DELETE FROM contactForm WHERE `contactForm`.`id` = ?"; -$db->query($query, [$messageid]); +$ctx->db->query($query, [$messageid]); -$redirect->url('/novaconium/messages'); -$messages->notice("Removed Message $messageid"); +$ctx->redirect->url('/novaconium/messages'); +$ctx->messages->notice("Removed Message $messageid"); makeitso(); \ No newline at end of file diff --git a/controllers/message_edit.php b/controllers/message_edit.php index 015f8fe..afb7a3c 100644 --- a/controllers/message_edit.php +++ b/controllers/message_edit.php @@ -1,19 +1,19 @@ withData([ 'title' => 'Novaconium Message Page', 'pageclass' => 'novaconium' ]); -if ( empty($session->get('username'))) { - $redirect->url('/novaconium/login'); - $messages->error('You are not loggedin'); +if ( empty($ctx->session->get('username'))) { + $ctx->redirect->url('/novaconium/login'); + $ctx->messages->error('You are not loggedin'); makeitso(); } -$messageid = $router->parameters['id']; -$query = "SELECT id, name, email, message, created, unread FROM contactForm WHERE id = '$messageid'"; +$messageid = $ctx->router->parameters['id']; +$query = "SELECT id, name, email, message, created, unread FROM contactForm WHERE id = ?"; -$data['themessage'] = $db->getRow($query); +$ctx->withData(['themessage' => $ctx->db->getRow($query, [$messageid])]); -view('@novacore/editmessage', $data); \ No newline at end of file +view('@novacore/editmessage', $ctx->data); \ No newline at end of file diff --git a/controllers/message_save.php b/controllers/message_save.php index e037063..1ce4b97 100644 --- a/controllers/message_save.php +++ b/controllers/message_save.php @@ -5,53 +5,53 @@ use Nickyeoman\Validation; $v = new Nickyeoman\Validation\Validate(); $url_success = '/novaconium/messages'; -$url_error = '/novaconium/messages/edit/' . $post->get('id'); // Redirect back to the message edit form on error +$url_error = '/novaconium/messages/edit/' . $ctx->post->get('id'); // Redirect back to the message edit form on error // Check if logged in -if (empty($session->get('username'))) { - $messages->error('You are not logged in'); - $redirect->url('/novaconium/login'); +if (empty($ctx->session->get('username'))) { + $ctx->messages->error('You are not logged in'); + $ctx->redirect->url('/novaconium/login'); makeitso(); } // Check CSRF token -if ($session->get('token') != $post->get('token')) { - $messages->error('Invalid token'); - $redirect->url($url_success); +if ($ctx->session->get('token') != $ctx->post->get('token')) { + $ctx->messages->error('Invalid token'); + $ctx->redirect->url($url_success); makeitso(); } // Get POST data -$id = $post->get('id'); -$name = $post->get('name'); -$email = $post->get('email'); -$message = $post->get('message'); -$unread = !empty($post->get('unread')) ? 1 : 0; +$id = $ctx->post->get('id'); +$name = $ctx->post->get('name'); +$email = $ctx->post->get('email'); +$message = $ctx->post->get('message'); +$unread = !empty($ctx->post->get('unread')) ? 1 : 0; // Validate required fields if (empty($id) || empty($message) || empty($email)) { - $messages->error('One of the required fields was empty.'); - $redirect->url($url_error); + $ctx->messages->error('One of the required fields was empty.'); + $ctx->redirect->url($url_error); makeitso(); } try { // Prepare update query - $query = "UPDATE `contactForm` - SET `name` = ?, `email` = ?, `message` = ?, `unread` = ? + $query = "UPDATE `contactForm` + SET `name` = ?, `email` = ?, `message` = ?, `unread` = ? WHERE `id` = ?"; $params = [$name, $email, $message, $unread, $id]; - $db->query($query, $params); + $ctx->db->query($query, $params); - $messages->notice('Message updated successfully'); + $ctx->messages->notice('Message updated successfully'); -} catch (Exception $e) { - $messages->error('Error updating message: ' . $e->getMessage()); - $redirect->url($url_error); +} catch (\Exception $e) { + $ctx->messages->error('Error updating message: ' . $e->getMessage()); + $ctx->redirect->url($url_error); makeitso(); } // Redirect to success page -$redirect->url($url_success); +$ctx->redirect->url($url_success); diff --git a/controllers/messages.php b/controllers/messages.php index ef6c259..fb2d5c9 100644 --- a/controllers/messages.php +++ b/controllers/messages.php @@ -1,22 +1,22 @@ withData([ 'title' => 'Novaconium Messages', 'pageclass' => 'novaconium', 'pageid' => 'controlPanel' ]); -if ( empty($session->get('username'))) { - $redirect->url('/novaconium/login'); - $messages->error('You are not loggedin'); +if ( empty($ctx->session->get('username'))) { + $ctx->redirect->url('/novaconium/login'); + $ctx->messages->error('You are not loggedin'); makeitso(); } // Get the pages $query = "SELECT id, name, email, LEFT(message, 40) AS message, created, unread FROM contactForm"; -$matched = $db->getRows($query); +$matched = $ctx->db->getRows($query); -$data['messages'] = $matched; +$ctx->withData(['messages' => $matched]); -view('@novacore/messages', $data); \ No newline at end of file +view('@novacore/messages', $ctx->data); \ No newline at end of file diff --git a/controllers/pages.php b/controllers/pages.php index 618426b..7f7e1a1 100644 --- a/controllers/pages.php +++ b/controllers/pages.php @@ -1,21 +1,21 @@ withData([ 'title' => 'Novaconium Pages', 'pageclass' => 'novaconium', 'pageid' => 'controlPanel' ]); -if ( empty($session->get('username'))) { - $redirect->url('/novaconium/login'); - $messages->error('You are not loggedin'); +if ( empty($ctx->session->get('username'))) { + $ctx->redirect->url('/novaconium/login'); + $ctx->messages->error('You are not loggedin'); makeitso(); } // Get the pages $query = "SELECT id, title, created, updated, draft FROM pages"; -$matched = $db->getRows($query); +$matched = $ctx->db->getRows($query); -$data['pages'] = $matched; +$ctx->withData(['pages' => $matched]); -view('@novacore/pages', $data); \ No newline at end of file +view('@novacore/pages', $ctx->data); \ No newline at end of file diff --git a/controllers/samples.php b/controllers/samples.php index 75b389a..00e0503 100644 --- a/controllers/samples.php +++ b/controllers/samples.php @@ -10,7 +10,7 @@ $pt = '@novacore/samples'; //Define the view directory //$pt = 'samples'; //drop the core for your project //Grab the slug -$slug = $router->parameters['slug']; +$slug = $ctx->router->parameters['slug']; //build path $tmpl = $pt . '/' . $slug; @@ -26,7 +26,7 @@ if (strpos($pt, '@novacore') !== false) { $possibleFile = $baseDir . '/' . $slug . '.html.twig'; // add .twig extension if needed if (is_file($possibleFile) && is_readable($possibleFile)) { - view($tmpl, $data); + view($tmpl, $ctx->data); } else { http_response_code('404'); header("Content-Type: text/html"); diff --git a/controllers/savepage.php b/controllers/savepage.php index 6b8e73c..ef78c39 100644 --- a/controllers/savepage.php +++ b/controllers/savepage.php @@ -5,44 +5,44 @@ use Novaconium\Services\TagManager; $v = new Nickyeoman\Validation\Validate(); -$url_error = '/novaconium/page/edit/' . $post->get('id'); // fallback for errors +$url_error = '/novaconium/page/edit/' . $ctx->post->get('id'); // fallback for errors // ------------------------- // Check login // ------------------------- -if (empty($session->get('username'))) { - $messages->error('You are not logged in'); - $redirect->url('/novaconium/login'); +if (empty($ctx->session->get('username'))) { + $ctx->messages->error('You are not logged in'); + $ctx->redirect->url('/novaconium/login'); makeitso(); } // ------------------------- // Check CSRF token // ------------------------- -if ($session->get('token') != $post->get('token')) { - $messages->error('Invalid Token'); - $redirect->url('/novaconium/pages'); +if ($ctx->session->get('token') != $ctx->post->get('token')) { + $ctx->messages->error('Invalid Token'); + $ctx->redirect->url('/novaconium/pages'); makeitso(); } // ------------------------- // Gather POST data // ------------------------- -$id = $post->get('id'); -$title = $_POST['title'] ?? ''; -$heading = $_POST['heading'] ?? ''; -$description = $_POST['description'] ?? ''; -$keywords = $_POST['keywords'] ?? ''; -$author = $_POST['author'] ?? ''; -$slug = $_POST['slug'] ?? ''; -$path = $_POST['path'] ?? null; -$intro = $_POST['intro'] ?? ''; -$body = $_POST['body'] ?? ''; -$notes = $_POST['notes'] ?? ''; -$draft = !empty($post->get('draft')) ? 1 : 0; -$changefreq = $_POST['changefreq'] ?? 'monthly'; -$priority = $_POST['priority'] ?? 0.0; -$tags_json = $_POST['tags_json'] ?? '[]'; +$id = $ctx->post->get('id'); +$title = $ctx->post->get('title', ''); +$heading = $ctx->post->get('heading', ''); +$description = $ctx->post->get('description', ''); +$keywords = $ctx->post->get('keywords', ''); +$author = $ctx->post->get('author', ''); +$slug = $ctx->post->get('slug', ''); +$path = $ctx->post->get('path'); +$intro = $ctx->post->get('intro', ''); +$body = $ctx->post->get('body', ''); +$notes = $ctx->post->get('notes', ''); +$draft = !empty($ctx->post->get('draft')) ? 1 : 0; +$changefreq = $ctx->post->get('changefreq', 'monthly'); +$priority = $ctx->post->get('priority', 0.0); +$tags_json = $ctx->post->get('tags_json', '[]'); // ------------------------- // Decode & sanitize tags @@ -57,13 +57,13 @@ $tags = array_unique($tags); // Validate required fields // ------------------------- if (empty($title) || empty($slug) || empty($body)) { - $messages->error('Title, Slug, and Body are required.'); - $redirect->url($url_error); + $ctx->messages->error('Title, Slug, and Body are required.'); + $ctx->redirect->url($url_error); makeitso(); } try { - $tagManager = new TagManager(); + $tagManager = new TagManager($ctx->db); if ($id == 'newpage') { // ------------------------- @@ -79,9 +79,9 @@ try { $slug, $path, $intro, $body, $notes, $draft, $changefreq, $priority ]; - $db->query($query, $params); - $id = $db->lastid; - $messages->notice('Page Created'); + $ctx->db->query($query, $params); + $id = $ctx->db->lastid; + $ctx->messages->notice('Page Created'); } else { // ------------------------- @@ -97,8 +97,8 @@ try { $slug, $path, $intro, $body, $notes, $draft, $changefreq, $priority, $id ]; - $db->query($query, $params); - $messages->notice('Page Updated'); + $ctx->db->query($query, $params); + $ctx->messages->notice('Page Updated'); } // ------------------------- @@ -106,11 +106,11 @@ try { // ------------------------- $tagManager->setTagsForPage($id, $tags); -} catch (Exception $e) { - $messages->error($e->getMessage()); - $redirect->url($url_error); +} catch (\Exception $e) { + $ctx->messages->error($e->getMessage()); + $ctx->redirect->url($url_error); makeitso(); } // Redirect back to edit page -$redirect->url('/novaconium/page/edit/' . $id); +$ctx->redirect->url('/novaconium/page/edit/' . $id); diff --git a/controllers/settings.php b/controllers/settings.php index 5550dda..cf7be4a 100644 --- a/controllers/settings.php +++ b/controllers/settings.php @@ -1,15 +1,15 @@ withData([ 'title' => 'Novaconium Settings', 'pageclass' => 'novaconium', 'pageid' => 'controlPanel' ]); -if ( empty($session->get('username'))) { - $redirect->url('/novaconium/login'); - $messages->error('You are not loggedin'); +if ( empty($ctx->session->get('username'))) { + $ctx->redirect->url('/novaconium/login'); + $ctx->messages->error('You are not loggedin'); makeitso(); } -view('@novacore/settings', $data); \ No newline at end of file +view('@novacore/settings', $ctx->data); \ No newline at end of file diff --git a/controllers/sitemap.php b/controllers/sitemap.php index 045304b..efe5ffe 100644 --- a/controllers/sitemap.php +++ b/controllers/sitemap.php @@ -10,7 +10,7 @@ $query=<<getRows($query); +$thepages = $ctx->db->getRows($query); // Start the view echo ''; @@ -25,9 +25,9 @@ if ( ! empty($thepages) ) { echo ""; if ( empty($v['path']) ) - echo "" . $config['base_url'] . '/page/' . $v['slug'] . ""; + echo "" . $ctx->config['base_url'] . '/page/' . $v['slug'] . ""; else - echo "" . $config['base_url'] . $v['path'] . ""; + echo "" . $ctx->config['base_url'] . $v['path'] . ""; echo "" . $date . ""; echo "" . $v['changefreq'] . ""; diff --git a/skeleton/novaconium/App/controllers/index.php b/skeleton/novaconium/App/controllers/index.php index b5aaa30..31c6486 100644 --- a/skeleton/novaconium/App/controllers/index.php +++ b/skeleton/novaconium/App/controllers/index.php @@ -1,5 +1,5 @@ withData([ 'title' => 'Welcome to Novaconium Index Page', 'pageclass' => 'novaconium' ]); diff --git a/skeleton/novaconium/App/controllers/page.php b/skeleton/novaconium/App/controllers/page.php index 70a40b7..dfc7e61 100644 --- a/skeleton/novaconium/App/controllers/page.php +++ b/skeleton/novaconium/App/controllers/page.php @@ -1,7 +1,7 @@ parameters['slug']; +$slug = $ctx->router->parameters['slug']; $query=<<debugGetRow($query); -$data = $db->getRow($query); -if(!$data) { +$page = $ctx->db->getRow($query, [$slug]); +if(!$page) { http_response_code('404'); header("Content-Type: text/html"); view('404'); exit; } -$data = array_merge($data, [ +$ctx->withData(array_merge($page, [ 'menuActive' => 'blog', 'pageid' => 'page', - 'permissionsGroup' => $session->get('group') -]); + 'permissionsGroup' => $ctx->session->get('group') +])); -view('page', $data); +view('page', $ctx->data); diff --git a/skeleton/novaconium/App/controllers/robots.php b/skeleton/novaconium/App/controllers/robots.php index 115305d..4f4b0dc 100644 --- a/skeleton/novaconium/App/controllers/robots.php +++ b/skeleton/novaconium/App/controllers/robots.php @@ -6,7 +6,7 @@ header('Content-Type: text/plain; charset=UTF-8'); header('Cache-Control: public, max-age=604800'); // Use $config['base_url'] as-is -$baseUrl = $config['base_url']; +$baseUrl = $ctx->config['base_url']; echo <<db = $db; + $this->db = $db ?? ($GLOBALS['ctx']->db ?? null) ?? ($GLOBALS['db'] ?? null); } /**