diff options
author | Freya Murphy <freya@freyacat.org> | 2024-04-02 18:13:02 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2024-04-02 18:13:02 -0400 |
commit | 7e2553646c27cae8baaca1cc5c13d980661b5d90 (patch) | |
tree | 822b9a2184834fd8913d7a3d8cfe5cf0005c1728 /src/web/_model | |
parent | start custom banner and avatar loading (diff) | |
download | xssbook2-7e2553646c27cae8baaca1cc5c13d980661b5d90.tar.gz xssbook2-7e2553646c27cae8baaca1cc5c13d980661b5d90.tar.bz2 xssbook2-7e2553646c27cae8baaca1cc5c13d980661b5d90.zip |
finish profile directory (mostly)
Diffstat (limited to 'src/web/_model')
-rw-r--r-- | src/web/_model/apps/people.php | 88 | ||||
-rw-r--r-- | src/web/_model/format.php | 3 |
2 files changed, 90 insertions, 1 deletions
diff --git a/src/web/_model/apps/people.php b/src/web/_model/apps/people.php new file mode 100644 index 0000000..4b6bab4 --- /dev/null +++ b/src/web/_model/apps/people.php @@ -0,0 +1,88 @@ +<?php /* Copyright (c) 2024 Freya Murphy */ +class People_model extends Model { + + private $request_model; + + function __construct($load) { + parent::__construct($load); + $this->request_model = $this->load->model('request'); + } + + private function get_filted_query($select) { + $filter_username = $this->request_model->get_str('filter_username', FALSE); + $filter_fisrt_name = $this->request_model->get_str('filter_first_name', FALSE); + $filter_last_name = $this->request_model->get_str('filter_last_name', FALSE); + $filter_email = $this->request_model->get_str('filter_email', FALSE); + $max = $this->request_model->get_int('max', FALSE); + + $query = $this->db + ->select($select) + ->from('api.user u'); + + if ($filter_username) { + $query = $query + ->where('u.username') + ->like('%' . $filter_username . '%'); + } + + if ($filter_fisrt_name) { + $query = $query + ->where('u.first_name') + ->like('%'. $filter_fisrt_name . '%'); + } + + if ($filter_last_name) { + $query = $query + ->where('u.last_name') + ->like('%' . $filter_last_name . '%'); + } + + if ($filter_email) { + $query = $query + ->where('u.email') + ->like('%' . $filter_email . '%'); + } + + if ($max) { + $query = $query + ->where('u.id') + ->le($max); + } + + return $query; + } + + public function get_users(): array { + $page = $this->request_model->get_int('page', 0); + $page_size = 24; + $offset = $page_size * $page; + + $users = $this->get_filted_query('*') + ->order_by('u.id', 'DESC') + ->offset($offset) + ->limit($page_size) + ->rows(); + + $count = $this->get_filted_query('COUNT(u.id) AS count') + ->row()['count']; + + $max = 0; + + foreach ($users as $user) { + $max = max($max, $user['id']); + } + + return array( + 'users' => $users, + 'count' => $count, + 'page_size' => $page_size, + 'max_id' => $max + ); + } + + public function get_data(): array { + $data = parent::get_data(); + $data['title'] = lang('title'); + return $data; + } +} diff --git a/src/web/_model/format.php b/src/web/_model/format.php index 52b51be..d2a3700 100644 --- a/src/web/_model/format.php +++ b/src/web/_model/format.php @@ -39,7 +39,8 @@ class Format_model extends Model { * @returns the formatted date */ public function date($date) { - return $date; + $date=date_create($date); + return date_format($date, "Y-m-d H:i"); } } |