From 530bbf058781e00e588f1457b6ee589a64b74da1 Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Fri, 5 Apr 2024 10:46:09 -0400 Subject: i did thing oh god large commit --- src/web/_controller/_util/post.php | 8 +- src/web/_controller/apps/people.php | 7 ++ src/web/_controller/apps/profile.php | 6 +- src/web/_model/apps/people.php | 64 ++++++------- src/web/_views/apps/home/main.php | 2 +- src/web/_views/apps/people/card.php | 26 +---- src/web/_views/apps/people/footer.php | 3 + src/web/_views/apps/people/header.php | 6 ++ src/web/_views/apps/people/main.php | 121 ++++++++++++------------ src/web/_views/apps/profile/main.php | 173 +++++++++++++++++++++++++++++----- src/web/_views/header.php | 16 ++-- src/web/_views/modal/new_post.php | 2 +- src/web/_views/template/comment.php | 2 +- src/web/_views/template/pfp.php | 17 ---- src/web/_views/template/post.php | 5 +- src/web/_views/template/posts.php | 2 +- src/web/config/aesthetic.php | 1 + src/web/helper/image.php | 33 +++++++ src/web/index.php | 1 + src/web/lang/en_US/apps/profile.php | 23 ++++- src/web/lang/en_US/common_lang.php | 1 + 21 files changed, 341 insertions(+), 178 deletions(-) create mode 100644 src/web/_views/apps/people/footer.php create mode 100644 src/web/_views/apps/people/header.php delete mode 100644 src/web/_views/template/pfp.php create mode 100644 src/web/helper/image.php (limited to 'src/web') diff --git a/src/web/_controller/_util/post.php b/src/web/_controller/_util/post.php index 4da2671..5346497 100644 --- a/src/web/_controller/_util/post.php +++ b/src/web/_controller/_util/post.php @@ -79,9 +79,9 @@ class Post_controller extends Controller { ->where('p.id')->le($max); } - if ($uid) { + if ($filter_uid) { $query = $query - ->where('p.user_id')->eq($uid); + ->where('p.user_id')->eq($filter_uid); } $posts = $query @@ -106,9 +106,9 @@ class Post_controller extends Controller { ->select('COUNT(p.id) as pc') ->from('api.post p'); - if ($uid) { + if ($filter_uid) { $query = $query - ->where('p.user_id')->eq($uid); + ->where('p.user_id')->eq($filter_uid); } $pc = $query diff --git a/src/web/_controller/apps/people.php b/src/web/_controller/apps/people.php index 19910ac..86da3b3 100644 --- a/src/web/_controller/apps/people.php +++ b/src/web/_controller/apps/people.php @@ -17,10 +17,17 @@ class People_controller extends Controller { parent::index(); $data = $this->people_model->get_data(); $this->view('header', $data); + $this->view('apps/people/header', $data); $this->view('apps/people/main', $data); + $this->view('apps/people/footer', $data); $this->view('footer', $data); } + public function content(): void { + $data = $this->people_model->get_data(); + $this->view('apps/people/main', $data); + } + /** * @return array */ diff --git a/src/web/_controller/apps/profile.php b/src/web/_controller/apps/profile.php index aaed348..3bc9a91 100644 --- a/src/web/_controller/apps/profile.php +++ b/src/web/_controller/apps/profile.php @@ -7,12 +7,16 @@ class Profile_controller extends Controller { // the format model protected $format_model; - // the post model + // the post controller protected $post_controller; + // the people controller + protected $people_controller; + function __construct($load) { parent::__construct($load); $this->profile_model = $this->load->model('apps/profile'); + $this->people_controller = $this->load->controller('apps/people'); $this->format_model = $this->load->model('format'); $this->post_controller = $this->load->controller('_util/post'); } diff --git a/src/web/_model/apps/people.php b/src/web/_model/apps/people.php index 1bb110f..ade59d3 100644 --- a/src/web/_model/apps/people.php +++ b/src/web/_model/apps/people.php @@ -7,40 +7,32 @@ class People_model extends Model { 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); + /** + * @param mixed $select + */ + private function get_filted_query($select): DatabaseQuery { + $filter_type = $this->request_model->get_str('filter', FALSE); + $filter_uid = $this->request_model->get_int('uid', 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 ($filter_type && $filter_uid) { + switch ($filter_type) { + case 'follower': { + $query = $query + ->join('admin.follow f', 'f.follower_id = u.id AND f.followee_id', 'INNER') + ->eq($filter_uid); + } break; + + case 'followee': { + $query = $query + ->join('admin.follow f', 'f.followee_id = u.id AND f.follower_id', 'INNER') + ->eq($filter_uid); + } break; + } } if ($max) { @@ -52,12 +44,15 @@ class People_model extends Model { return $query; } - public function get_users(): array { + /** + * @return array + */ + 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('*') + $users = $this->get_filted_query('u.*') ->order_by('u.id', 'DESC') ->offset($offset) ->limit($page_size) @@ -72,11 +67,16 @@ class People_model extends Model { $max = max($max, $user['id']); } + $filter_type = $this->request_model->get_str('filter', FALSE); + $filter_uid = $this->request_model->get_int('uid', FALSE); + return array( 'users' => $users, 'count' => $count, 'page_size' => $page_size, - 'max_id' => $max + 'max_id' => $max, + 'filter_type' => $filter_type || '', + 'filter_uid' => $filter_uid || '' ); } diff --git a/src/web/_views/apps/home/main.php b/src/web/_views/apps/home/main.php index 29bf7c3..735e3d8 100644 --- a/src/web/_views/apps/home/main.php +++ b/src/web/_views/apps/home/main.php @@ -4,7 +4,7 @@
- view('template/pfp', array('user' => $self))?> + - diff --git a/src/web/_views/apps/people/header.php b/src/web/_views/apps/people/header.php new file mode 100644 index 0000000..7f3d95b --- /dev/null +++ b/src/web/_views/apps/people/header.php @@ -0,0 +1,6 @@ + + +
+

+

+
diff --git a/src/web/_views/apps/people/main.php b/src/web/_views/apps/people/main.php index 171f25c..deec4c2 100644 --- a/src/web/_views/apps/people/main.php +++ b/src/web/_views/apps/people/main.php @@ -1,67 +1,72 @@ -
-

-

-
-
- people(); - ?> -
- - = $page_size && $page_size < $total): ?> - $loaded, - 'pageSize' => $page_size, - 'userCount' => $total, - 'userMax' => $max - ) - )?> - - -
+ }); + + diff --git a/src/web/_views/apps/profile/main.php b/src/web/_views/apps/profile/main.php index afa45bc..e3d65b5 100644 --- a/src/web/_views/apps/profile/main.php +++ b/src/web/_views/apps/profile/main.php @@ -1,37 +1,158 @@ + +
-
- -
-
- view('template/pfp', array('user' => $user)); ?> -
-
- format_model->name($user)?> - format_model->date($user['created'])?> +
+
+ +
+
+ +
+
+ format_model->name($user)?> + + 0): ?> +
+ + + +
+
+
+ + + +
-
-
- - -
-
+
post_controller->index(); ?>
+
+

+ + + + + + + + + + + + + + + + + + + + + +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ people_controller->content(); + ?> +
+
+ people_controller->content(); + ?> +
+
+
diff --git a/src/web/_views/header.php b/src/web/_views/header.php index 8a0333e..f1aef01 100644 --- a/src/web/_views/header.php +++ b/src/web/_views/header.php @@ -11,7 +11,7 @@