feat(web/user): website

This commit is contained in:
Baoshuo Ren 2022-10-20 08:45:23 +08:00
parent 1eb342120e
commit 4e9b2a748a
Signed by: baoshuo
GPG Key ID: 00CB9680AB29F51A
6 changed files with 24 additions and 1 deletions

View File

@ -818,6 +818,7 @@ CREATE TABLE `user_info` (
`images_size_limit` int(11) UNSIGNED NOT NULL DEFAULT 104857600, /* 100 MiB */
`codeforces_handle` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
`github` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
`website` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
PRIMARY KEY (`username`),
KEY `ac_num` (`ac_num`,`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;

View File

@ -122,6 +122,16 @@ EOD);
$vdata['codeforces_handle'] = $codeforces_handle;
return '';
}, null);
$update_profile_form->addVInput('website', 'text', UOJLocale::get('user::website'), $user['website'],
function($url, &$vdata) {
if ($url && !validateURL($url)) {
return '链接格式不合法。';
}
$vdata['website'] = $url;
return '';
}, null);
$update_profile_form->handle = function(&$vdata) use ($user, $myUser) {
@ -131,6 +141,7 @@ EOD);
$esc_sex = DB::escape($_POST['sex']);
$esc_motto = DB::escape($vdata['motto']);
$esc_codeforces_handle = DB::escape($vdata['codeforces_handle']);
$esc_website = DB::escape($vdata['website']);
if (isSuperUser($myUser)) {
$esc_school = DB::escape($vdata['school']);
@ -138,7 +149,7 @@ EOD);
DB::update("UPDATE user_info SET school = '$esc_school' WHERE username = '{$user['username']}'");
}
DB::update("UPDATE user_info SET email = '$esc_email', qq = '$esc_qq', sex = '$esc_sex', motto = '$esc_motto', codeforces_handle = '$esc_codeforces_handle', github = '$esc_github' WHERE username = '{$user['username']}'");
DB::update("UPDATE user_info SET email = '$esc_email', qq = '$esc_qq', sex = '$esc_sex', motto = '$esc_motto', codeforces_handle = '$esc_codeforces_handle', github = '$esc_github', website = '$esc_website' WHERE username = '{$user['username']}'");
};
$update_profile_form->submit_button_config['margin_class'] = 'mt-3';
$update_profile_form->submit_button_config['text'] = '更新';

View File

@ -1,5 +1,6 @@
<?php
return [
'website' => 'Website',
'admin' => 'Admin',
'student' => 'Student',
'teacher' => 'Teacher',

View File

@ -1,5 +1,6 @@
<?php
return [
'website' => '网址',
'admin' => '管理员',
'student' => '学生',
'teacher' => '老师',

View File

@ -1,2 +1,3 @@
ALTER TABLE `user_info` ADD COLUMN `codeforces_handle` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '';
ALTER TABLE `user_info` ADD COLUMN `github` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '';
ALTER TABLE `user_info` ADD COLUMN `website` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '';

View File

@ -197,6 +197,14 @@ function fTime($time, $gran = -1) {
</script>
</li>
<?php endif ?>
<?php if ($user['website']): ?>
<li class="list-group-item">
<i class="bi bi-link-45deg me-1"></i>
<a class="text-decoration-none text-body text-break" href="<?= HTML::escape($user['website']) ?>" target="_blank">
<?= HTML::escape($user['website']) ?>
</a>
</li>
<?php endif ?>
</ul>
<div class="card-footer bg-transparent">
<?php $last_visited = strtotime($user['last_visited']) ?>