diff options
| author | Freya Murphy <freya@freyacat.org> | 2024-04-01 11:09:25 -0400 |
|---|---|---|
| committer | Freya Murphy <freya@freyacat.org> | 2024-04-01 11:09:25 -0400 |
| commit | 3a82baec9d793edf81ac2b151b0f4d4159641375 (patch) | |
| tree | f9d50c296b078ac48c2a2391c172c3ccf37edb3f /web/_controller | |
| parent | refactor asset dir, refactor oberver in lib (diff) | |
| download | xssbook2-3a82baec9d793edf81ac2b151b0f4d4159641375.tar.gz xssbook2-3a82baec9d793edf81ac2b151b0f4d4159641375.tar.bz2 xssbook2-3a82baec9d793edf81ac2b151b0f4d4159641375.zip | |
login and register, liking on homepage
Diffstat (limited to 'web/_controller')
| -rw-r--r-- | web/_controller/_index.php | 23 | ||||
| -rw-r--r-- | web/_controller/_util/post.php | 129 | ||||
| -rw-r--r-- | web/_controller/apps/error.php | 20 | ||||
| -rw-r--r-- | web/_controller/apps/home.php | 25 | ||||
| -rw-r--r-- | web/_controller/modal.php | 26 | ||||
| -rw-r--r-- | web/_controller/template.php | 22 |
6 files changed, 0 insertions, 245 deletions
diff --git a/web/_controller/_index.php b/web/_controller/_index.php deleted file mode 100644 index fdf9440..0000000 --- a/web/_controller/_index.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php /* Copyright (c) 2024 Freya Murphy */ -class _index_controller extends Controller { - - // the home model - private $home_model; - - // the request model - private $request_model; - - // the caceh model - private $cache_model; - - public function index(): void { - if ($this->main->session) { - $this->redirect('/home'); - } else { - $this->redirect('/login'); - } - } - -} - -?> diff --git a/web/_controller/_util/post.php b/web/_controller/_util/post.php deleted file mode 100644 index b128d67..0000000 --- a/web/_controller/_util/post.php +++ /dev/null @@ -1,129 +0,0 @@ -<?php /* Copyright (c) 2024 Freya Murphy */ -class Post_controller extends Controller { - - // the request model - private $request_model; - - // the caceh model - private $cache_model; - - // page size - private $page_size; - - function __construct($load) { - parent::__construct($load); - $this->request_model = $this->load->model('request'); - $this->cache_model = $this->load->model('cache'); - $this->page_size = 10; - } - - public function index(): void { - $this->view('template/posts'); - } - - /** - * @return array<string,mixed> - */ - public function posts(): array { - $page = $this->request_model->get_int('page', 0); - $max = $this->request_model->get_int('max'); - $offset = $page * $this->page_size; - - $user = $this->main->user(); - - $query = $this->db; - - if ($user) { - $query = $query->select('p.*, l.post_id IS NOT NULL as liked'); - } else { - $query = $query->select('p.*, FALSE as liked'); - } - - $query = $query->from('api.post p'); - - if ($user) { - $query = $query->join('admin.like l', 'p.id = l.post_id AND l.user_id') - ->eq($user['id']); - } - - if ($max) { - $query = $query - ->where('id')->le($max); - } - - $posts = $query - ->limit($this->page_size) - ->offset($offset) - ->rows(); - - $users = $this->cache_model->get_users($posts); - $max = 0; - - foreach ($posts as $post) { - $max = max($max, $post['id']); - $data = array(); - $data['page_size'] = $this->page_size; - $data['user'] = $users[$post['user_id']]; - $data['post'] = $post; - $this->view('template/post', $data); - } - - $pc = $this->db - ->select('COUNT(p.id) as pc') - ->from('api.post p') - ->row()['pc']; - - - return array( - 'loaded' => count($posts), - 'total' => $pc, - 'page_size' => $this->page_size, - 'max' => $max, - ); - } - - /** - * @return array<string,mixed> - */ - public function comments(): array { - $page = $this->request_model->get_int('page', 0); - $max = $this->request_model->get_int('max'); - $id = $this->request_model->get_int('id', 0); - $offset = $page * $this->page_size; - - $query = $this->db - ->select('*') - ->from('api.comment') - ->where('post_id') - ->eq($id); - - if ($max) { - $query = $query - ->and() - ->where('id') - ->le($max); - } - - $comments = $query - ->limit($this->page_size) - ->offset($offset) - ->rows(); - - $users = $this->cache_model->get_users($comments); - $max = 0; - - foreach ($comments as $comment) { - $max = max($max, $comment['id']); - $data = array(); - $data['user'] = $users[$comment['user_id']]; - $data['comment'] = $comment; - $this->view('template/comment', $data); - } - - return array( - 'loaded' => count($comments), - 'page_size' => $this->page_size, - 'max' => $max, - ); - } -} diff --git a/web/_controller/apps/error.php b/web/_controller/apps/error.php deleted file mode 100644 index 5ce9ec4..0000000 --- a/web/_controller/apps/error.php +++ /dev/null @@ -1,20 +0,0 @@ -<?php /* Copyright (c) 2024 Freya Murphy */ -class Error_controller extends Controller { - - private $error_model; - - function __construct($load) { - parent::__construct($load); - $this->error_model = $this->load->model('apps/error'); - } - - public function index() { - parent::index(); - $data = $this->error_model->get_data(); - $this->view('header', $data); - $this->view('apps/error/main', $data); - } - -} - -?> diff --git a/web/_controller/apps/home.php b/web/_controller/apps/home.php deleted file mode 100644 index edf7e2b..0000000 --- a/web/_controller/apps/home.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php /* Copyright (c) 2024 Freya Murphy */ -class Home_controller extends Controller { - - // the home model - private $home_model; - - // the post controller - protected $post_controller; - - function __construct($load) { - parent::__construct($load); - $this->home_model = $this->load->model('apps/home'); - $this->post_controller = $this->load->controller('_util/post'); - } - - public function index(): void { - parent::index(); - $data = $this->home_model->get_data(); - $this->view('header', $data); - $this->view('apps/home/main', $data); - } - -} - -?> diff --git a/web/_controller/modal.php b/web/_controller/modal.php deleted file mode 100644 index 9ae4ca8..0000000 --- a/web/_controller/modal.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php /* Copyright (c) 2024 Freya Murphy */ -class Modal_controller extends Controller { - - - function __construct($load) { - parent::__construct($load); - } - - /** - * @param string $name - * @param array $data - */ - private function modal($name, $data = array()): void { - $title = lang($name . '_modal_title'); - $data['title'] = $title; - $data['content'] = $name; - $this->view('template/modal', $data); - } - - public function new_post(): void { - $this->modal('new_post'); - } -} - -?> - diff --git a/web/_controller/template.php b/web/_controller/template.php deleted file mode 100644 index 7a8cdf8..0000000 --- a/web/_controller/template.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php /* Copyright (c) 2024 Freya Murphy */ -class Template_controller extends Controller { - - // the request model - private $request_model; - - function __construct($load) { - parent::__construct($load); - $this->request_model = $this->load->model('request'); - } - - public function toast(): void { - $data = array( - 'msg' => $this->request_model->get_str('msg', FALSE), - 'detail' => $this->request_model->get_str('detail', FALSE), - 'hint' => $this->request_model->get_str('hint', FALSE) - ); - $this->view('template/toast', $data); - } - -} - |