diff options
author | Freya Murphy <freya@freyacat.org> | 2024-09-18 14:14:53 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2024-09-18 14:48:54 -0400 |
commit | 1f9024763d9224c4cd9a181bac27e6b9f12ad672 (patch) | |
tree | 00f827470dad9aa2692483acbdef9502c1a464d3 /src/web/_controller | |
parent | fix rss (diff) | |
download | website-1f9024763d9224c4cd9a181bac27e6b9f12ad672.tar.gz website-1f9024763d9224c4cd9a181bac27e6b9f12ad672.tar.bz2 website-1f9024763d9224c4cd9a181bac27e6b9f12ad672.zip |
refactor
Diffstat (limited to 'src/web/_controller')
-rw-r--r-- | src/web/_controller/_comments.php | 8 | ||||
-rw-r--r-- | src/web/_controller/_meta.php | 30 | ||||
-rw-r--r-- | src/web/_controller/blog.php | 48 | ||||
-rw-r--r-- | src/web/_controller/bucket.php | 9 | ||||
-rw-r--r-- | src/web/_controller/error.php | 17 | ||||
-rw-r--r-- | src/web/_controller/home.php | 9 | ||||
-rw-r--r-- | src/web/_controller/projects.php | 10 |
7 files changed, 72 insertions, 59 deletions
diff --git a/src/web/_controller/_comments.php b/src/web/_controller/_comments.php index 059b926..eea792f 100644 --- a/src/web/_controller/_comments.php +++ b/src/web/_controller/_comments.php @@ -3,12 +3,10 @@ class _comments_controller extends Controller { private $comments_model; - function __construct($load) { - parent::__construct($load); - $this->comments_model = $this->load->model('_comments'); + function __construct() { + $this->comments_model = $this->load_model('_comments'); } - public function comments(string $page, string $ref): void { $data = $this->comments_model->get_comments($page); $this->view('comments', array( @@ -79,7 +77,7 @@ class _comments_controller extends Controller { ->post_comment($author, $content, $page, $vulgar); if ($result) { - header('Location: ' . $this->main->get_url($ref) . '#comments'); + header('Location: ' . $this->get_url($ref) . '#comments'); } else { $this->error(500); } diff --git a/src/web/_controller/_meta.php b/src/web/_controller/_meta.php index e78f8b3..891bf69 100644 --- a/src/web/_controller/_meta.php +++ b/src/web/_controller/_meta.php @@ -1,13 +1,10 @@ <?php /* Copyright (c) 2024 Freya Murphy */ class _meta_controller extends Controller { - function __construct($load) { - parent::__construct($load); - } - - public function robots(): void { + public function robots(): void + { header("Content-Type: text/plain"); - $sitemap = $this->main->get_url_full('sitemap.xml'); + $sitemap = $this->get_url('sitemap.xml'); echo "User-agent: *\n"; echo "Disallow:\n"; @@ -18,14 +15,16 @@ class _meta_controller extends Controller { echo "Sitemap: {$sitemap}\n"; } - private function sitemap_page(string $url, string $priority): void { + private function sitemap_page(string $url, string $priority): void + { echo "<url>\n"; - echo "<loc>{$this->main->get_url_full($url)}</loc>\n"; + echo "<loc>{$this->get_url($url)}</loc>\n"; echo "<priority>{$priority}</priority>\n"; echo "</url>"; } - public function sitemap(): void { + public function sitemap(): void + { header("Content-Type: application/xml"); echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; @@ -35,8 +34,8 @@ class _meta_controller extends Controller { $this->sitemap_page('projects', 0.8); $this->sitemap_page('blog', 0.8); - $this->load->app_lang('blog'); - $blog_modal = $this->load->model('blog'); + $this->load_lang('blog'); + $blog_modal = $this->load_model('blog'); $blog = $blog_modal->get_data()['blog']; foreach ($blog as $name => $_) { @@ -46,20 +45,21 @@ class _meta_controller extends Controller { echo "</urlset>\n"; } - public function manifest(): void { + public function manifest(): void + { $json = array( 'short_name' => lang('domain'), 'name' => lang('domain'), 'icons' => [ array( - 'src' => $this->main->get_url('public/icons/logo512.png'), + 'src' => $this->get_url('public/icons/logo512.png'), 'type' => 'image/png', 'sizes' => '512x512', 'purpose' => 'any maskable' ) ], - 'id' => $this->main->get_url('home'), - 'start_url' => $this->main->get_url('home'), + 'id' => $this->get_url('home'), + 'start_url' => $this->get_url('home'), 'background_color' => lang('theme_color'), 'display' => 'standalone', 'scope' => lang('base_path'), diff --git a/src/web/_controller/blog.php b/src/web/_controller/blog.php index 4a961e1..b2ddbcc 100644 --- a/src/web/_controller/blog.php +++ b/src/web/_controller/blog.php @@ -4,29 +4,28 @@ class Blog_controller extends Controller { public $comments_controller; private $blog_model; - function __construct($load) { - parent::__construct($load); - $this->blog_model = $this->load->model('blog'); - $this->comments_controller = $this->load->controller('_comments'); + function __construct() + { + $this->blog_model = $this->load_model('blog'); + $this->comments_controller = $this->load_controller('_comments'); } - public function index(): void { + public function index(): void + { parent::index(); + $data = $this->blog_model->get_data(); $this->view('header', $data); $this->view('apps/blog', $data); $this->view('footer', $data); } - private function protect(string $folder): void { - if (!array_key_exists('name', $_GET)) { - $this->error(400); - } - - $basepath = $GLOBALS['assetroot'] . '/' . $folder . '/'; + private function protect(string $folder, string $name): void + { + $basepath = ASSET_ROOT . '/' . $folder . '/'; $realBase = realpath($basepath); - $userpath = $basepath . $_GET['name']; + $userpath = $basepath . $name . '.md'; $realUserPath = realpath($userpath); if ($realUserPath === false || strpos($realUserPath, $realBase) !== 0) { @@ -34,35 +33,42 @@ class Blog_controller extends Controller { } } - public function post(): void { - $this->protect('blog'); + public function post($name): void + { + $this->protect('blog', $name); + parent::index(); - $data = $this->blog_model->get_post($_GET['name']); + + $data = $this->blog_model->get_post($name); if ($data === FALSE) { $this->error(404); } $this->view('header', $data); $this->view('apps/blog_post', $data); - $ref = 'blog/post?name=' . $_GET['name']; + $ref = "blog/post{$name}"; $this->comments_controller->comments($data['post']['meta']['name'], $ref); $this->view('footer', $data); } - public function writeup(): void { - $this->protect('writeup'); + public function writeup($name): void + { + $this->protect('writeup', $name); + parent::index(); - $data = $this->blog_model->get_writeup($_GET['name']); + + $data = $this->blog_model->get_writeup($name); if ($data === FALSE) { $this->error(404); } $this->view('header', $data); $this->view('apps/blog_writeup', $data); - $ref = 'blog/writeup?name=' . $_GET['name']; + $ref = "blog/writeup/{$name}"; $this->comments_controller->comments($data['post']['meta']['name'], $ref); $this->view('footer', $data); } - public function rss(): void { + public function rss(): void + { $data = $this->blog_model->get_data(); header('Content-Type: application/xml'); $this->view('apps/blog_rss', $data); diff --git a/src/web/_controller/bucket.php b/src/web/_controller/bucket.php index ed15ef8..a7d1023 100644 --- a/src/web/_controller/bucket.php +++ b/src/web/_controller/bucket.php @@ -3,12 +3,13 @@ class Bucket_controller extends Controller { private $bucket_model; - function __construct($load) { - parent::__construct($load); - $this->bucket_model = $this->load->model('bucket'); + function __construct() + { + $this->bucket_model = $this->load_model('bucket'); } - public function index(): void { + public function index(): void + { parent::index(); $data = $this->bucket_model->get_data(); if ($data === NULL) { diff --git a/src/web/_controller/error.php b/src/web/_controller/error.php index d24308b..30bd797 100644 --- a/src/web/_controller/error.php +++ b/src/web/_controller/error.php @@ -3,19 +3,26 @@ class Error_controller extends Controller { private $error_model; - function __construct($load) { - parent::__construct($load); - $this->error_model = $this->load->model('error'); + function __construct() + { + $this->error_model = $this->load_model('error'); } - public function index(): void { + public function code(int $code): void + { parent::index(); - $data = $this->error_model->get_data(); + $this->load_lang('error'); + + $data = $this->error_model->get_data($code); $this->view('header', $data); $this->view('apps/error', $data); $this->view('footer', $data); } + public function index(): void + { + $this->code(500); + } } ?> diff --git a/src/web/_controller/home.php b/src/web/_controller/home.php index 12dff64..a673e60 100644 --- a/src/web/_controller/home.php +++ b/src/web/_controller/home.php @@ -1,12 +1,11 @@ <?php /* Copyright (c) 2024 Freya Murphy */ class Home_controller extends Controller { - function __construct($load) { - parent::__construct($load); - } - public function index(): void { + public function index(): void + { parent::index(); - $data = $this->main->get_data(); + + $data = Model::get_base_data(); $this->view('header', $data); $this->view('apps/home', $data); $this->view('footer', $data); diff --git a/src/web/_controller/projects.php b/src/web/_controller/projects.php index 9ee2136..cfa28b5 100644 --- a/src/web/_controller/projects.php +++ b/src/web/_controller/projects.php @@ -3,13 +3,15 @@ class Projects_controller extends Controller { private $projects_model; - function __construct($load) { - parent::__construct($load); - $this->projects_model = $this->load->model('projects'); + function __construct() + { + $this->projects_model = $this->load_model('projects'); } - public function index(): void { + public function index(): void + { parent::index(); + $data = $this->projects_model->get_data(); $this->view('header', $data); $this->view('apps/projects', $data); |