From 944b6b0526032ad8c1b4a2612d6723bec75e0e4c Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Fri, 29 Mar 2024 22:29:56 -0400 Subject: start database (user and post), and initial barebones home page --- web/routes/error/controller.php | 20 ++++++++++ web/routes/error/model.php | 31 +++++++++++++++ web/routes/error/views/error.php | 4 ++ web/routes/home/controller.php | 84 ++++++++++++++++++++++++++++++++++++++++ web/routes/home/model.php | 19 +++++++++ web/routes/home/views/main.php | 29 ++++++++++++++ 6 files changed, 187 insertions(+) create mode 100644 web/routes/error/controller.php create mode 100644 web/routes/error/model.php create mode 100644 web/routes/error/views/error.php create mode 100644 web/routes/home/controller.php create mode 100644 web/routes/home/model.php create mode 100644 web/routes/home/views/main.php (limited to 'web/routes') diff --git a/web/routes/error/controller.php b/web/routes/error/controller.php new file mode 100644 index 0000000..3cb2345 --- /dev/null +++ b/web/routes/error/controller.php @@ -0,0 +1,20 @@ +model = $model; + } + + public function index() { + parent::index(); + $data = $this->model->get_data(); + $this->view('header', $data); + $this->app_view('error', $data); + } + +} + +?> diff --git a/web/routes/error/model.php b/web/routes/error/model.php new file mode 100644 index 0000000..a30fccc --- /dev/null +++ b/web/routes/error/model.php @@ -0,0 +1,31 @@ +get_msg($data); + return $data; + } +} +?> diff --git a/web/routes/error/views/error.php b/web/routes/error/views/error.php new file mode 100644 index 0000000..3b926bc --- /dev/null +++ b/web/routes/error/views/error.php @@ -0,0 +1,4 @@ +
+

+ +
diff --git a/web/routes/home/controller.php b/web/routes/home/controller.php new file mode 100644 index 0000000..775e43a --- /dev/null +++ b/web/routes/home/controller.php @@ -0,0 +1,84 @@ +model = $model; + } + + public function index() { + parent::index(); + $data = $this->model->get_data(); + $this->view('header', $data); + $this->app_view('main', $data); + } + + public function posts() { + $page = $this->main->get_num('page', 0); + $page_size = 20; + $offset = $page * $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('admin.post p'); + + if ($user) { + $query = $query->join('admin.like l', 'p.id = l.post_id') + ->where('l.user_id')->eq($user['id']) + ->or()->where('l.user_id IS NULL'); + } + + $posts = $query->limit($page_size) + ->offset($offset) + ->rows(); + + $users = $this->main->get_users($posts); + + foreach ($posts as $post) { + $data = array(); + $data['user'] = $users[$post['user_id']]; + $data['post'] = $post; + $this->view('template/post', $data); + } + } + + public function comments() { + $page = $this->main->get_num('page', 0); + $id = $this->main->get_num('id'); + $page_size = 20; + $offset = $page * $page_size; + + $comments = $this->db + ->select('*') + ->from('admin.comment') + ->limit($page_size) + ->offset($offset) + ->rows(); + + $users = $this->main->get_users($comments); + + foreach ($comments as $comment) { + $data = array(); + $data['user'] = $users[$comment['user_id']]; + $data['comment'] = $comment; + $this->view('template/comment', $data); + } + } + + public function new_post_modal() { + $this->modal(lang('new_post_modal_title'), 'new-post'); + } + +} + +?> diff --git a/web/routes/home/model.php b/web/routes/home/model.php new file mode 100644 index 0000000..44a8549 --- /dev/null +++ b/web/routes/home/model.php @@ -0,0 +1,19 @@ +db + ->select('*') + ->from('admin.post') + ->limit(20) + ->rows(); + } + + public function get_data() { + $data = parent::get_data(); + $data['title'] = lang('title'); + $data['posts'] = $this->get_posts(); + return $data; + } +} +?> diff --git a/web/routes/home/views/main.php b/web/routes/home/views/main.php new file mode 100644 index 0000000..bf0087b --- /dev/null +++ b/web/routes/home/views/main.php @@ -0,0 +1,29 @@ + +
+ +
+
+ view('template/pfp', array('user' => $self))?> + + + +
+ +
+ +
+ posts()?> +
+ +
-- cgit v1.2.3-freya