diff options
author | Freya Murphy <freya@freyacat.org> | 2024-04-05 10:46:09 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2024-04-05 10:46:09 -0400 |
commit | 530bbf058781e00e588f1457b6ee589a64b74da1 (patch) | |
tree | c6cdd382a86d55538686293e51a1fc056cb59029 /src/web | |
parent | remove var (diff) | |
download | xssbook2-530bbf058781e00e588f1457b6ee589a64b74da1.tar.gz xssbook2-530bbf058781e00e588f1457b6ee589a64b74da1.tar.bz2 xssbook2-530bbf058781e00e588f1457b6ee589a64b74da1.zip |
i did thing oh god large commit
Diffstat (limited to '')
-rw-r--r-- | src/web/_controller/_util/post.php | 8 | ||||
-rw-r--r-- | src/web/_controller/apps/people.php | 7 | ||||
-rw-r--r-- | src/web/_controller/apps/profile.php | 6 | ||||
-rw-r--r-- | src/web/_model/apps/people.php | 62 | ||||
-rw-r--r-- | src/web/_views/apps/home/main.php | 2 | ||||
-rw-r--r-- | src/web/_views/apps/people/card.php | 26 | ||||
-rw-r--r-- | src/web/_views/apps/people/footer.php | 3 | ||||
-rw-r--r-- | src/web/_views/apps/people/header.php | 6 | ||||
-rw-r--r-- | src/web/_views/apps/people/main.php | 121 | ||||
-rw-r--r-- | src/web/_views/apps/profile/main.php | 173 | ||||
-rw-r--r-- | src/web/_views/header.php | 16 | ||||
-rw-r--r-- | src/web/_views/modal/new_post.php | 2 | ||||
-rw-r--r-- | src/web/_views/template/comment.php | 2 | ||||
-rw-r--r-- | src/web/_views/template/pfp.php | 17 | ||||
-rw-r--r-- | src/web/_views/template/post.php | 5 | ||||
-rw-r--r-- | src/web/_views/template/posts.php | 2 | ||||
-rw-r--r-- | src/web/config/aesthetic.php | 1 | ||||
-rw-r--r-- | src/web/helper/image.php | 33 | ||||
-rw-r--r-- | src/web/index.php | 1 | ||||
-rw-r--r-- | src/web/lang/en_US/apps/profile.php | 23 | ||||
-rw-r--r-- | src/web/lang/en_US/common_lang.php | 1 |
21 files changed, 340 insertions, 177 deletions
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<string,mixed> */ 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_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; - 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 . '%'); + 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<string,mixed> + */ + 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 @@ <?php if ($self): ?> <div id="new-post" class="card"> <div class="row grow"> - <?php $this->view('template/pfp', array('user' => $self))?> + <?=pfp($self)?> <a id="action-new-post" class="btn btn-alt btn-wide ml" diff --git a/src/web/_views/apps/people/card.php b/src/web/_views/apps/people/card.php index a44b0d4..eda49b5 100644 --- a/src/web/_views/apps/people/card.php +++ b/src/web/_views/apps/people/card.php @@ -4,32 +4,12 @@ class="card profile" href="/profile?id=<?=$user['id']?>" > - <div class="row"> - <?php $this->view('template/pfp', array('user' => $user, 'link' => FALSE)); ?> + <div class="col"> + <?=pfp($user, FALSE)?> <div class="col ml"> <strong class=""><?=$this->format_model->name($user)?></strong> - <span class="dim"><?=lang('joined') . ' ' . $this->format_model->date($user['created'])?></span> - <span class="dim"><?=lang('seen') . ' ' . $this->format_model->date($user['seen'])?></span> + <span class="dim"><?=$user['username']?></span> </div> </div> - <hr> - <table> - <tr> - <td><?=lang('tbl_username')?></td> - <td><?=$user['username']?></td> - <tr> - <tr> - <td><?=lang('tbl_email')?></td> - <td><?=$user['email']?></td> - <tr> - <tr> - <td><?=lang('tbl_gender')?></td> - <td><?=$user['gender']?></td> - <tr> - <tr> - <td><?=lang('tbl_uid')?></td> - <td><?=$user['id']?></td> - <tr> - </table> </a> <? diff --git a/src/web/_views/apps/people/footer.php b/src/web/_views/apps/people/footer.php new file mode 100644 index 0000000..ff93026 --- /dev/null +++ b/src/web/_views/apps/people/footer.php @@ -0,0 +1,3 @@ +<?php /* Copyright (c) 2024 Freya Murphy */ ?> +<?php /* vi: syntax=php */ ?> +</div> 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 @@ +<?php /* Copyright (c) 2024 Freya Murphy */ ?> +<?php /* vi: syntax=php */ ?> +<div id="main-content" class="col"> + <h1 class="title"><?=lang('title')?></h1> + <h3 class="desc"><?=lang('desc')?></h3> + <hr> 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 @@ <?php /* Copyright (c) 2024 Freya Murphy */ ?> <?php /* vi: syntax=php */ ?> -<div id="main-content" class="col"> - <h1 class="title"><?=lang('title')?></h1> - <h3 class="desc"><?=lang('desc')?></h3> - <hr> - <div id="people-container" class="col"> - <?php - $pdata = $this->people(); - ?> - </div> - <?php - $loaded = count($pdata['users']); - $page_size = $pdata['page_size']; - $total = $pdata['count']; - $max = $pdata['max_id']; - ?> - <?php if ($loaded >= $page_size && $page_size < $total): ?> - <?=ilang('action_load_users', - id: 'action-load-users', - class: 'btn btn-line btn-wide mb', - attrs: array( - 'loaded' => $loaded, - 'pageSize' => $page_size, - 'userCount' => $total, - 'userMax' => $max - ) - )?> - <script> +<div id="people-container" class="col"> +<?php + $pdata = $this->people(); +?> +</div> +<?php + $loaded = count($pdata['users']); + $page_size = $pdata['page_size']; + $total = $pdata['count']; + $max = $pdata['max_id']; + $filter_uid = $pdata['filter_uid']; + $filer_type = $pdata['filter_type']; +?> +<?php if ($loaded >= $page_size && $page_size < $total): ?> + <?=ilang('action_load_users', + id: 'action-load-users', + class: 'btn btn-line btn-wide mb', + attrs: array( + 'loaded' => $loaded, + 'pageSize' => $page_size, + 'userCount' => $total, + 'userMax' => $max, + 'filterUid' => $filter_uid, + 'filterType' => $filer_type + ) + )?> + <script> - var urlParams = new URLSearchParams(window.location.search).toString(); + $('#action-load-users').on('click', function() { + let me = $(this); + let page = me.attr('page'); + if (!page) { + page = '1'; + } + let newPage = Number(page) + 1; + me.attr('page', newPage + ''); - $('#action-load-users').on('click', function() { - let me = $(this); - let page = me.attr('page'); - if (!page) { - page = '1'; - } - let newPage = Number(page) + 1; - me.attr('page', newPage + ''); + let loaded = Number(me.attr('loaded')); + let pageSize = Number(me.attr('pageSize')); + let userCount = Number(me.attr('userCount')); + let userMax = Number(me.attr('userMax')); - let loaded = Number(me.attr('loaded')); - let pageSize = Number(me.attr('pageSize')); - let userCount = Number(me.attr('userCount')); - let userMax = Number(me.attr('userMax')); + let filterType = me.attr('filterType'); + let filterUid = me.attr('filterUid'); - let url = '/people/people?page=' + page + '&max=' + userMax + '&' + urlParams; - $.get(url, function (data) { - if (data === '') { - me.remove(); - return; - } + let url = '/people/people?page=' + page + '&max=' + userMax; - let container = $('#people-container'); - container.append(data); + if (filterType && filterUid) { + url += '&filter=' + filterType + '&uid=' + filterUid; + } + + $.get(url, function (data) { + if (data === '') { + me.remove(); + return; + } - loaded += pageSize; - if (loaded >= userCount) { - me.remove(); - } else { - me.attr('loaded', loaded + ''); - } - }); + let container = $('#people-container'); + container.append(data); + + loaded += pageSize; + if (loaded >= userCount) { + me.remove(); + } else { + me.attr('loaded', loaded + ''); + } }); - </script> - <?php endif ?> -</div> + }); + </script> +<?php endif ?> 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 @@ +<?php /* Copyright (c) 2024 Freya Murphy */ ?> +<?php /* vi: syntax=php */ ?> <div id="main-content"> - <div id="profile-header" class="col"> - <div class="banner image-loading"> - <img src="/api/rpc/profile_banner?user_id=<?=$user['id']?>"> - </div> - <div class="info row"> - <div class="pfp-wrapper"> - <?php $this->view('template/pfp', array('user' => $user)); ?> - </div> - <div class="col content"> - <strong class="name"><?=$this->format_model->name($user)?></strong> - <span class="dim"><?=lang('joined') . $this->format_model->date($user['created'])?></span> + <div id="profile-header-container"> + <div id="profile-header" class="col"> + <?=image('/api/rpc/profile_banner?user_id=' . $user['id'], 'banner')?> + <div class="info row"> + <div class="pfp-wrapper"> + <?=pfp($user)?> + </div> + <div class="col content"> + <strong class="name"><?=$this->format_model->name($user)?></strong> + <span class="dim"><?=$user['follower_count'] . ' ' . lang('followers')?></span> + <?php if(strlen($user['profile_bio']) > 0): ?> + <br> + <strong><?=lang('bio')?></strong> + <span class="dim"><?=$user['profile_bio']?></span> + <?php endif; ?> + </div> </div> + <hr> + <div class="row options"> + <?=ilang('action_posts', + sub: [$user['first_name']], + class: 'btn btn-blue btn-border', + id: 'action-posts' + )?> + <?=ilang('action_about', + sub: [$user['first_name']], + class: 'btn', + id: 'action-about' + )?> + <?=ilang('action_followers', + sub: [$user['first_name']], + class: 'btn', + id: 'action-followers' + )?> + <?=ilang('action_following', + sub: [$user['first_name']], + class: 'btn', + id: 'action-following' + )?> </div> - <hr> - <div class="row options"> - <?=ilang('action_posts', - sub: [$user['first_name']], - class: 'btn' - )?> - <?=ilang('action_about', - sub: [$user['first_name']], - class: 'btn' - )?> - <?=ilang('action_friends', - sub: [$user['first_name']], - class: 'btn' - )?> </div> </div> - <div id="#tab-posts"> + <div id="tab-posts" class="tab"> <?php $_GET['user_id'] = $user['id']; $this->post_controller->index(); ?> </div> + <div id="tab-about" class="tab"> + <h1><?=lang('about_general')?></h1> + <table> + <tr> + <td><strong><?=lang('about_general_username')?></strong></td> + <td><?=$user['username']?></td> + </tr> + <tr> + <td><strong><?=lang('about_general_full_name')?></strong></td> + <td><?=$user['first_name'] . ' ' . $user['last_name']?></td> + </tr> + <tr> + <td><strong><?=lang('about_general_email')?></strong></td> + <td><?=$user['email']?></td> + </tr> + <tr> + <td><strong><?=lang('about_general_gender')?></strong></td> + <td><?=$user['gender']?></td> + </tr> + <tr> + <td><strong><?=lang('about_general_birth_date')?></strong></td> + <td><?=$user['birth_date']?></td> + </tr> + </table> + <h1><?=lang('about_stats')?></h1> + <table> + <tr> + <td><strong><?=lang('about_stats_posts')?></strong></td> + <td><?=$user['post_count']?></td> + </tr> + <tr> + <td><strong><?=lang('about_stats_like')?></strong></td> + <td><?=$user['like_count']?></td> + </tr> + <tr> + <td><strong><?=lang('about_stats_comments')?></strong></td> + <td><?=$user['comment_count']?></td> + </tr> + <tr> + <td><strong><?=lang('about_stats_following')?></strong></td> + <td><?=$user['followed_count']?></td> + </tr> + <tr> + <td><strong><?=lang('about_stats_joined')?></strong></td> + <td><?=$user['created']?></td> + </tr> + <tr> + <td><strong><?=lang('about_stats_seen')?></strong></td> + <td><?=$user['seen']?></td> + </tr> + </table> + </div> + <div id="tab-followers" class="tab"> + <?php + $_GET['filter'] = 'follower'; + $_GET['uid'] = $user['id']; + $this->people_controller->content(); + ?> + </div> + <div id="tab-following" class="tab"> + <?php + $_GET['filter'] = 'followee'; + $_GET['uid'] = $user['id']; + $this->people_controller->content(); + ?> + </div> + </div> + <script> + let tabs = {}; + + const disableTab = (tab) => { + tab.btn.removeClass('btn-blue'); + tab.btn.removeClass('btn-border'); + tab.tab.css('display', 'none'); + }; + + const enableTab = (tab) => { + tab.btn.addClass('btn-blue'); + tab.btn.addClass('btn-border'); + tab.tab.css('display', ''); + }; + + const loadTab = (name, disable = true) => { + let btn = $('#action-' + name); + btn.on('click', function() { + for (let tab of Object.values(tabs)) { + disableTab(tab); + } + enableTab(tabs[name]); + }); + + tabs[name] = { + 'btn': btn, + 'tab': $('#tab-' + name) + }; + + if (disable) { + disableTab(tabs[name]); + } + }; + + loadTab('posts', false); + loadTab('about'); + loadTab('followers'); + loadTab('following'); + </script> </div> 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 @@ <div class="nav-center" :class="{hidden: !visible}"> <a id="action-home" - class="btn" + class="btn<?=$this->main->info['app'] == 'home' ? ' btn-blue btn-border' : ''?>" href="/home" title="<?=lang('action_home_tip')?>" > @@ -20,35 +20,33 @@ </a> <a id="action-people" - class="btn" + class="btn<?=$this->main->info['app'] == 'people' ? ' btn-blue btn-border' : ''?>" href="/people" title="<?=lang('action_people_tip')?>" > <i class="mi mi-lg">people</i> <span><?=lang('action_people_text')?></span> </a> - <a + <!--a id="action-chat" - class="btn" + class="btn<?=$this->main->info['app'] == 'chat' ? ' btn-blue btn-border' : ''?>" href="/chat" title="<?=lang('action_chat_tip')?>" > <i class="mi mi-lg">chat</i> <span><?=lang('action_chat_text')?></span> - </a> + </a--> </div> <div class="nav-right"> <button id="action-hamburger" title="<?=lang('action_hamburger_tip')?>" + class="btn mr" > <i class="mi mi-lg">menu</i> </button> <?php if($self): ?> - <?php $this->view('template/pfp', array( - 'user' => $self, - 'class' => 'pfp-sm ml', - )); ?> + <?=pfp($self)?> <?php else: ?> <?=ilang('action_login', class: 'btn', href: '/auth/login')?> <?php endif; ?> diff --git a/src/web/_views/modal/new_post.php b/src/web/_views/modal/new_post.php index 50b9b84..15163c9 100644 --- a/src/web/_views/modal/new_post.php +++ b/src/web/_views/modal/new_post.php @@ -6,7 +6,7 @@ <form id="new-post-form"> <div class="modal-content new-post-modal"> <div class="row"> - <?php $this->view('template/pfp', array('user' => $user))?> + <?=pfp($user)?> <div class="col ml"> <strong><?=$user['first_name'] . ' ' . $user['last_name']?></strong> <span class="dim"><?=lang('now')?></span> diff --git a/src/web/_views/template/comment.php b/src/web/_views/template/comment.php index 3ff473b..cf2c0b4 100644 --- a/src/web/_views/template/comment.php +++ b/src/web/_views/template/comment.php @@ -4,7 +4,7 @@ $format_model = $this->load->model('format'); ?> <div class="comment row mt"> - <?php $this->view('template/pfp', array('user' => $user))?> + <?=pfp($user)?> <div class="ml col sub-card"> <div class="row"> <strong><?=$format_model->name($user)?></strong> diff --git a/src/web/_views/template/pfp.php b/src/web/_views/template/pfp.php deleted file mode 100644 index ebb4b5f..0000000 --- a/src/web/_views/template/pfp.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php /* Copyright (c) 2024 Freya Murphy */ ?> -<?php /* vi: syntax=php */ ?> -<?php - $class = isset($class) ? $class : ''; - $link = isset($link) ? $link : TRUE; -?> -<?php if($link): ?> -<a class="image-loading pfp <?=$class?>" href="/profile?id=<?=$user['id']?>"> -<?php else: ?> -<div class="image-loading pfp <?=$class?>"> -<?php endif; ?> - <img src="/api/rpc/profile_avatar?user_id=<?=$user['id']?>"/> -<?php if ($link): ?> -</a> -<?php else: ?> -</div> -<?php endif; ?> diff --git a/src/web/_views/template/post.php b/src/web/_views/template/post.php index 0633985..fb8cef5 100644 --- a/src/web/_views/template/post.php +++ b/src/web/_views/template/post.php @@ -2,7 +2,7 @@ <?php /* vi: syntax=php */ ?> <div class="post card"> <div class="row"> - <?php $this->view('template/pfp', array('user' => $user))?> + <?=pfp($user)?> <div class="col ml"> <strong><?=$user['first_name'] . ' ' . $user['last_name']?></strong> <span class="dim"><?=$post['created']?></span> @@ -21,6 +21,7 @@ $post_attrs['likeId'] = $post['like_id']; } ?> + <span class="likes dim"><span class="count"><?=$post['like_count']?></span><?=' ' . lang('likes')?></span> <?php if ($self): ?> <hr> <div class="row"> @@ -61,7 +62,7 @@ </div> <?php if ($self): ?> <div class="row pb"> - <?php $this->view('template/pfp', array('user' => $self))?> + <?=pfp($self)?> <form class="ml action-new-comment-form row"> <input type="hidden" diff --git a/src/web/_views/template/posts.php b/src/web/_views/template/posts.php index 5fec698..137c0dd 100644 --- a/src/web/_views/template/posts.php +++ b/src/web/_views/template/posts.php @@ -17,7 +17,7 @@ 'pageSize' => $page_size, 'postCount' => $total, 'postMax' => $max, - 'userId' => $filterUid + 'userId' => $filterUid ? json_encode($filterUid) : '' ) ); } diff --git a/src/web/config/aesthetic.php b/src/web/config/aesthetic.php index 99a1959..d37f4a9 100644 --- a/src/web/config/aesthetic.php +++ b/src/web/config/aesthetic.php @@ -45,6 +45,7 @@ class Aesthetic { ], 'css' => [ 'css/profile.css', + 'css/people.css', 'css/post.css' ], ), diff --git a/src/web/helper/image.php b/src/web/helper/image.php new file mode 100644 index 0000000..ac2f808 --- /dev/null +++ b/src/web/helper/image.php @@ -0,0 +1,33 @@ +<?php /* Copyright (c) 2024 Freya Murphy */ + +function image($src, $class = NULL, $link = NULL): string { + if ($class) { + $class = 'image-loading ' . $class; + } else { + $class = 'image-loading'; + } + + $content = ''; + + if ($link) { + $content .= '<a class="' . $class . '" href="' . $link . '">'; + } else { + $content .= '<span class="' . $class . '">'; + } + $content .= '<img src="' . $src . '" onerror="onImgError(this)" onload="onImgLoad(this)"/>'; + if ($link) { + $content .= '</a>'; + } else { + $content .= '</span>'; + } + + return $content; +} + +function pfp( + $user, + $embedLink = TRUE, +): string { + $link = $embedLink ? '/profile?id=' . $user['id'] : NULL; + return image('/api/rpc/profile_avatar?user_id=' . $user['id'], 'pfp', link: $link); +} diff --git a/src/web/index.php b/src/web/index.php index 688383f..dc54905 100644 --- a/src/web/index.php +++ b/src/web/index.php @@ -6,6 +6,7 @@ session_start(); $webroot = dirname(__FILE__); // load all the helper files +require($webroot . '/helper/image.php'); require($webroot . '/helper/error.php'); require($webroot . '/helper/lang.php'); diff --git a/src/web/lang/en_US/apps/profile.php b/src/web/lang/en_US/apps/profile.php index 2cc9b4e..43a3247 100644 --- a/src/web/lang/en_US/apps/profile.php +++ b/src/web/lang/en_US/apps/profile.php @@ -4,15 +4,34 @@ $lang['title'] = '%s\'s profile'; $lang['joined'] = 'Joined: '; $lang['seen'] = 'Seen: '; +$lang['followers'] = 'Followers'; +$lang['bio'] = 'Bio'; $lang['action_posts_text'] = 'Posts'; $lang['action_posts_tip'] = 'View %s\'s posts'; $lang['action_about_text'] = 'About'; $lang['action_about_tip'] = 'View %s\'s information'; -$lang['action_friends_text'] = 'Friends'; -$lang['action_friends_tip'] = 'View %s\'s friends'; +$lang['action_followers_text'] = 'Followers'; +$lang['action_followers_tip'] = 'View %s\'s followres'; +$lang['action_following_text'] = 'Following'; +$lang['action_following_tip'] = 'View who %s is following'; $lang['action_load_posts_text'] = 'Load more posts'; $lang['action_load_posts_tip'] = 'Load more posts'; +$lang['about_general'] = 'General'; +$lang['about_general_username'] = 'Username'; +$lang['about_general_full_name'] = 'Full Name'; +$lang['about_general_email'] = 'Email'; +$lang['about_general_gender'] = 'Gender'; +$lang['about_general_birth_date'] = 'Birthday'; + +$lang['about_stats'] = 'Statistics'; +$lang['about_stats_posts'] = 'Posts Created'; +$lang['about_stats_like'] = 'Posts Liked'; +$lang['about_stats_comments'] = 'Comments Created'; +$lang['about_stats_following'] = 'Accounts Followed'; +$lang['about_stats_joined'] = 'Date Joined'; +$lang['about_stats_seen'] = 'Last Seen'; + ?> diff --git a/src/web/lang/en_US/common_lang.php b/src/web/lang/en_US/common_lang.php index 7e214b5..eb60888 100644 --- a/src/web/lang/en_US/common_lang.php +++ b/src/web/lang/en_US/common_lang.php @@ -46,5 +46,6 @@ $lang['action_new_post_tip'] = 'Author a new post.'; // Words $lang['now'] = 'Now'; +$lang['likes'] = 'Likes'; ?> |