summaryrefslogtreecommitdiff
path: root/web/_controller
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2024-04-01 11:09:25 -0400
committerFreya Murphy <freya@freyacat.org>2024-04-01 11:09:25 -0400
commit3a82baec9d793edf81ac2b151b0f4d4159641375 (patch)
treef9d50c296b078ac48c2a2391c172c3ccf37edb3f /web/_controller
parentrefactor asset dir, refactor oberver in lib (diff)
downloadxssbook2-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.php23
-rw-r--r--web/_controller/_util/post.php129
-rw-r--r--web/_controller/apps/error.php20
-rw-r--r--web/_controller/apps/home.php25
-rw-r--r--web/_controller/modal.php26
-rw-r--r--web/_controller/template.php22
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);
- }
-
-}
-