-
-
添加新用户
- printHTML(); ?>
-
修改用户密码
- printHTML(); ?>
-
用户类别设置
-
在此处更新用户所属类别后会自动重置用户权限。
- printHTML(); ?>
-
用户权限管理
- printHTML(); ?>
-
修改用户真实姓名
- printHTML(); ?>
-
修改用户学校名称
- printHTML(); ?>
-
用户名单
-
-
-
-
-
添加到公告
- printHTML(); ?>
-
-
-
-
删除博客
- printHTML(); ?>
-
-
-
-
倒计时
-
-
添加倒计时
- printHTML(); ?>
-
删除倒计时
- printHTML(); ?>
+
+
+
+
+
-
友情链接
-
-
添加友情链接
- printHTML(); ?>
-
删除友情链接
- printHTML(); ?>
+
+
+
添加/修改公告
+ printHTML(); ?>
-
-
-
删除赛前提交记录
- printHTML(); ?>
+
+
+
+
+
+
+
+
添加倒计时
+ printHTML(); ?>
-
-
测评失败的提交记录
- ''), $myUser); ?>
+
+
+
+
+
+
+
+
添加常用链接
+ printHTML(); ?>
-
- printHTML() ?>
- array('*'),
- 'table_name' => 'custom_test_submissions',
- 'cond' => '1',
- 'tail' => 'order by id asc',
- 'page_len' => 5
- ));
- foreach ($submissions_pag->get() as $submission) {
- $problem = queryProblemBrief($submission['problem_id']);
- $submission_result = json_decode($submission['result'], true);
- echo '
';
- echo '- id
';
- echo '- ', "#{$submission['id']}", '
';
- echo '- problem_id
';
- echo '- ', "#{$submission['problem_id']}", '
';
- echo '- submit time
';
- echo '- ', $submission['submit_time'], '
';
- echo '- submitter
';
- echo '- ', $submission['submitter'], '
';
- echo '- judge_time
';
- echo '- ', $submission['judge_time'], '
';
- echo '
';
- echoSubmissionContent($submission, getProblemCustomTestRequirement($problem));
- echoCustomTestSubmissionDetails($submission_result['details'], "submission-{$submission['id']}-details");
- }
- ?>
- = $submissions_pag->pagination() ?>
-
-
-
添加评测机
- printHTML(); ?>
-
-
-
删除评测机
- printHTML(); ?>
-
-
评测机列表
-
-
-
图床管理
-
-
-
删除图片
- printHTML() ?>
-
-
-
修改用户存储上限
- printHTML() ?>
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/web/app/controllers/super_manage_old.php b/web/app/controllers/super_manage_old.php
new file mode 100644
index 0000000..1231e6b
--- /dev/null
+++ b/web/app/controllers/super_manage_old.php
@@ -0,0 +1,867 @@
+submit_button_config['align'] = 'compressed';
+ $register_form->addInput('new_username', 'text', '用户名', '',
+ function ($new_username) {
+ if (!validateUsername($new_username)) {
+ return '用户名不合法';
+ }
+ if (queryUser($new_username)) {
+ return '该用户已存在';
+ }
+ return '';
+ },
+ null
+ );
+ $register_form->addInput('new_password', 'password', '密码', '',
+ function ($new_password) {
+ return '';
+ },
+ null
+ );
+ $register_form->addInput('new_realname', 'text', '真实姓名', '',
+ function ($new_realname) {
+ return '';
+ },
+ null
+ );
+ $register_form->addInput('new_school', 'text', '学校名称', '',
+ function ($new_school) {
+ return '';
+ },
+ null
+ );
+ $register_form->handle = function() {
+ $new_username = $_POST['new_username'];
+ $new_password = $_POST['new_password'];
+ $new_realname = DB::escape($_POST['new_realname']);
+ $new_school = DB::escape($_POST['new_school']);
+ $new_password = hash_hmac('md5', $new_password, getPasswordClientSalt());
+ $new_password = getPasswordToStore($new_password, $new_username);
+ $svn_pw = uojRandString(10);
+
+ DB::query("insert into user_info (username, realname, school, password, svn_password, register_time, usergroup) values ('$new_username', '$new_realname', '$new_school', '$new_password', '$svn_pw', now(), 'U')");
+ };
+ $register_form->runAtServer();
+
+ $change_password_form = new UOJForm('change_password');
+ $change_password_form->submit_button_config['align'] = 'compressed';
+ $change_password_form->addInput('p_username', 'text', '用户名', '',
+ function ($p_username) {
+ if (!validateUsername($p_username)) {
+ return '用户名不合法';
+ }
+ if (!queryUser($p_username)) {
+ return '用户不存在';
+ }
+ return '';
+ },
+ null
+ );
+ $change_password_form->addInput('p_password', 'password', '密码', '',
+ function ($p_password) {
+ return '';
+ },
+ null
+ );
+ $change_password_form->handle = function() {
+ $p_username = $_POST['p_username'];
+ $p_password = $_POST['p_password'];
+ $p_password = hash_hmac('md5', $p_password, getPasswordClientSalt());
+ $p_password = getPasswordToStore($p_password, $p_username);
+
+ DB::query("update user_info set password = '$p_password' where username = '$p_username'");
+ };
+ $change_password_form->runAtServer();
+
+ $change_realname_form = new UOJForm('change_realname');
+ $change_realname_form->submit_button_config['align'] = 'compressed';
+ $change_realname_form->addInput('r_username', 'text', '用户名', '',
+ function ($r_username) {
+ if (!validateUsername($r_username)) {
+ return '用户名不合法';
+ }
+ if (!queryUser($r_username)) {
+ return '用户不存在';
+ }
+ return '';
+ },
+ null
+ );
+ $change_realname_form->addInput('r_realname', 'text', '真实姓名', '',
+ function ($r_realname) {
+ return '';
+ },
+ null
+ );
+ $change_realname_form->handle = function() {
+ $r_username = $_POST['r_username'];
+ $r_realname = DB::escape($_POST['r_realname']);
+
+ DB::query("update user_info set realname = '$r_realname' where username = '$r_username'");
+ };
+ $change_realname_form->runAtServer();
+
+ $change_school_form = new UOJForm('change_school');
+ $change_school_form->submit_button_config['align'] = 'compressed';
+ $change_school_form->addInput('s_username', 'text', '用户名', '',
+ function ($s_username) {
+ if (!validateUsername($s_username)) {
+ return '用户名不合法';
+ }
+ if (!queryUser($s_username)) {
+ return '用户不存在';
+ }
+ return '';
+ },
+ null
+ );
+ $change_school_form->addInput('s_school', 'text', '学校名称', '',
+ function ($s_school) {
+ return '';
+ },
+ null
+ );
+ $change_school_form->handle = function() {
+ $s_username = $_POST['s_username'];
+ $s_school = DB::escape($_POST['s_school']);
+
+ DB::query("update user_info set school = '$s_school' where username = '$s_username'");
+ };
+ $change_school_form->runAtServer();
+
+ $user_form = new UOJForm('user');
+ $user_form->submit_button_config['align'] = 'compressed';
+ $user_form->addInput('username', 'text', '用户名', '',
+ function ($username) {
+ if (!validateUsername($username)) {
+ return '用户名不合法';
+ }
+ if (!queryUser($username)) {
+ return '用户不存在';
+ }
+ return '';
+ },
+ null
+ );
+ $options = array(
+ 'banneduser' => '设为封禁用户',
+ 'normaluser' => '设为普通用户',
+ 'superuser' => '设为超级用户'
+ );
+ $user_form->addSelect('op_type', $options, '操作类型', '');
+ $user_form->handle = function() {
+ global $user_form;
+
+ $username = $_POST['username'];
+ switch ($_POST['op_type']) {
+ case 'banneduser':
+ DB::update("update user_info set usergroup = 'B' where username = '{$username}'");
+ DB::update("update user_info set usertype = 'banned' where username = '{$username}'");
+ break;
+ case 'normaluser':
+ DB::update("update user_info set usergroup = 'U' where username = '{$username}'");
+ DB::update("update user_info set usertype = 'student' where username = '{$username}'");
+ break;
+ case 'superuser':
+ DB::update("update user_info set usergroup = 'S' where username = '{$username}'");
+ DB::update("update user_info set usertype = 'student' where username = '{$username}'");
+ break;
+ }
+ };
+ $user_form->runAtServer();
+
+ $usertype_form = new UOJForm('usertype');
+ $user_form->submit_button_config['align'] = 'compressed';
+ $usertype_form->addInput('usertype_username', 'text', '用户名', '',
+ function ($username) {
+ if (!validateUsername($username)) {
+ return '用户名不合法';
+ }
+ if (!queryUser($username)) {
+ return '用户不存在';
+ }
+ return '';
+ },
+ null
+ );
+ $usertype_options = array(
+ 'student' => '学生',
+ 'teacher' => '老师',
+ 'problem_uploader' => '题目上传者',
+ 'problem_manager' => '题目管理员',
+ 'contest_judger' => '比赛评测员',
+ 'contest_only' => '仅比赛参加者',
+ );
+ $usertype_form->addSelect('usertype_type', $usertype_options, '角色', '');
+ $usertype_form->addSelect('usertype_op', array('add' => '添加', 'remove' => '移除'), '操作', '');
+ $usertype_form->handle = function() {
+ global $usertype_form;
+
+ $username = $_POST['usertype_username'];
+ $user = queryUser($username);
+ switch ($_POST['usertype_type']) {
+ case 'teacher':
+ if ($_POST['usertype_op'] === 'add') {
+ $user = addUserType($user, 'teacher');
+ $user = removeUserType($user, 'student');
+ } else {
+ $user = removeUserType($user, 'teacher');
+ $user = addUserType($user, 'student');
+ }
+ break;
+ case 'problem_manager':
+ if ($_POST['usertype_op'] === 'add') {
+ $user = addUserType($user, 'problem_manager');
+ $user = removeUserType($user, 'problem_uploader');
+ } else {
+ $user = removeUserType($user, 'problem_manager');
+ }
+ break;
+ case 'student':
+ case 'problem_uploader':
+ case 'contest_judger':
+ case 'contest_only':
+ $user = $_POST['usertype_op'] === 'add'
+ ? addUserType($user, $_POST['usertype_type'])
+ : removeUserType($user, $_POST['usertype_type']);
+ break;
+ }
+
+ DB::update("update user_info set usertype = '{$user['usertype']}' where username = '{$username}'");
+ };
+ $usertype_form->runAtServer();
+
+ $blog_link_index = new UOJForm('blog_link_index');
+ $blog_link_index->addInput('blog_id2', 'text', '博客ID', '',
+ function ($x) {
+ if (!validateUInt($x)) {
+ return 'ID不合法';
+ }
+ if (!queryBlog($x)) {
+ return '博客不存在';
+ }
+ return '';
+ },
+ null
+ );
+ $blog_link_index->addInput('blog_level', 'text', '置顶级别(删除不用填)', '0',
+ function ($x) {
+ if (!validateUInt($x)) {
+ return '数字不合法';
+ }
+ if ($x > 3) {
+ return '该级别不存在';
+ }
+ return '';
+ },
+ null
+ );
+ $options = array(
+ 'add' => '添加',
+ 'del' => '删除'
+ );
+ $blog_link_index->addSelect('op-type2', $options, '操作类型', '');
+ $blog_link_index->handle = function() {
+ $blog_id = $_POST['blog_id2'];
+ $blog_level = $_POST['blog_level'];
+ if ($_POST['op-type2'] == 'add') {
+ if (DB::selectFirst("select * from important_blogs where blog_id = {$blog_id}")) {
+ DB::update("update important_blogs set level = {$blog_level} where blog_id = {$blog_id}");
+ } else {
+ DB::insert("insert into important_blogs (blog_id, level) values ({$blog_id}, {$blog_level})");
+ }
+ }
+ if ($_POST['op-type2'] == 'del') {
+ DB::delete("delete from important_blogs where blog_id = {$blog_id}");
+ }
+ };
+ $blog_link_index->runAtServer();
+
+ $blog_deleter = new UOJForm('blog_deleter');
+ $blog_deleter->addInput('blog_del_id', 'text', '博客ID', '',
+ function ($x) {
+ if (!validateUInt($x)) {
+ return 'ID不合法';
+ }
+ if (!queryBlog($x)) {
+ return '博客不存在';
+ }
+ return '';
+ },
+ null
+ );
+ $blog_deleter->handle = function() {
+ deleteBlog($_POST['blog_del_id']);
+ };
+ $blog_deleter->runAtServer();
+
+ $countdown_adder = new UOJForm('new_countdown');
+ $countdown_adder->submit_button_config['align'] = 'compressed';
+ $countdown_adder->addInput('new_countdown_title', 'text', '标题', '',
+ function ($new_countdown_title) {
+ return '';
+ },
+ null
+ );
+ $countdown_adder->addInput('new_countdown_endtime', 'text', '截止日期', date("Y-m-d H:i:s"),
+ function($str, &$vdata) {
+ try {
+ $vdata['new_countdown_endtime'] = new DateTime($str);
+ } catch (Exception $e) {
+ return '无效时间格式';
+ }
+ return '';
+ },
+ null
+ );
+ $countdown_adder->handle = function() {
+ $new_countdown_title = $_POST['new_countdown_title'];
+ $new_countdown_endtime = $_POST['new_countdown_endtime'];
+ $esc_countdown_title = DB::escape($new_countdown_title);
+
+ DB::query("insert into countdowns (title, endtime) values ('$esc_countdown_title', '$new_countdown_endtime')");
+ };
+ $countdown_adder->runAtServer();
+
+ $countdown_deleter = new UOJForm('delete_countdown');
+ $countdown_deleter->submit_button_config['align'] = 'compressed';
+ $countdown_deleter->addInput('delete_countdown_id', 'text', 'ID', '',
+ function ($x) {
+ if (!validateUInt($x)) {
+ return 'ID不合法';
+ }
+
+ if (!DB::selectFirst("select * from countdowns where id = $x")) {
+ return '倒计时不存在';
+ }
+
+ return '';
+ },
+ null
+ );
+ $countdown_deleter->handle = function() {
+ $delete_countdown_id = $_POST['delete_countdown_id'];
+
+ DB::query("delete from countdowns where id = $delete_countdown_id");
+ };
+ $countdown_deleter->runAtServer();
+
+ $countdowns_header_row = <<
+ ID |
+ 标题 |
+ 时间 |
+
+EOD;
+ $countdowns_print_row = function($row) {
+ echo <<
+ {$row['id']} |
+ {$row['title']} |
+ {$row['endtime']} |
+
+EOD;
+ };
+
+ $friend_link_adder = new UOJForm('new_friend_link');
+ $friend_link_adder->submit_button_config['align'] = 'compressed';
+ $friend_link_adder->addInput('new_friend_link_title', 'text', '名称', '',
+ function ($str) {
+ return '';
+ },
+ null
+ );
+ $friend_link_adder->addInput('new_friend_link_url', 'text', '链接', '',
+ function($str) {
+ if (!validateURL($str)) {
+ return '链接不合法';
+ }
+
+ return '';
+ },
+ null
+ );
+ $friend_link_adder->addInput('new_friend_link_level', 'text', '权重', '10',
+ function($str) {
+ if (!validateUInt($str)) {
+ return '权重必须是数字';
+ }
+
+ return '';
+ },
+ null
+ );
+ $friend_link_adder->handle = function() {
+ $new_friend_link_title = $_POST['new_friend_link_title'];
+ $new_friend_link_url = $_POST['new_friend_link_url'];
+ $new_friend_link_level = $_POST['new_friend_link_level'];
+ $esc_new_friend_link_title = DB::escape($new_friend_link_title);
+ $esc_new_friend_link_url = DB::escape($new_friend_link_url);
+
+ DB::query("insert into friend_links (title, url, level) values ('$esc_new_friend_link_title', '$esc_new_friend_link_url', $new_friend_link_level)");
+ };
+ $friend_link_adder->runAtServer();
+
+ $friend_link_deleter = new UOJForm('delete_friend_link');
+ $friend_link_deleter->submit_button_config['align'] = 'compressed';
+ $friend_link_deleter->addInput('delete_friend_link_id', 'text', 'ID', '',
+ function ($id) {
+ if (!validateUInt($id)) {
+ return 'ID不合法';
+ }
+
+ if (!DB::selectFirst("select * from friend_links where id = $id")) {
+ return 'ID不存在';
+ }
+
+ return '';
+ },
+ null
+ );
+ $friend_link_deleter->handle = function() {
+ $delete_friend_link_id = $_POST['delete_friend_link_id'];
+
+ DB::query("delete from friend_links where id = $delete_friend_link_id");
+ };
+ $friend_link_deleter->runAtServer();
+
+ $friend_links_header_row = <<
+ ID |
+ 名称 |
+ 链接 |
+ 置顶等级 |
+
+EOD;
+ $friend_links_print_row = function($row) {
+ echo <<
+ {$row['id']} |
+ {$row['title']} |
+ {$row['url']} |
+ {$row['level']} |
+
+EOD;
+ };
+
+ $contest_submissions_deleter = new UOJForm('contest_submissions');
+ $contest_submissions_deleter->addInput('contest_id', 'text', '比赛ID', '',
+ function ($x) {
+ if (!validateUInt($x)) {
+ return 'ID不合法';
+ }
+ if (!queryContest($x)) {
+ return '博客不存在';
+ }
+ return '';
+ },
+ null
+ );
+ $contest_submissions_deleter->handle = function() {
+ $contest = queryContest($_POST['contest_id']);
+ genMoreContestInfo($contest);
+
+ $contest_problems = DB::selectAll("select problem_id from contests_problems where contest_id = {$contest['id']}");
+ foreach ($contest_problems as $problem) {
+ $submissions = DB::selectAll("select * from submissions where problem_id = {$problem['problem_id']} and submit_time < '{$contest['start_time_str']}'");
+ foreach ($submissions as $submission) {
+ $content = json_decode($submission['content'], true);
+ unlink(UOJContext::storagePath().$content['file_name']);
+ DB::delete("delete from submissions where id = {$submission['id']}");
+ updateBestACSubmissions($submission['submitter'], $submission['problem_id']);
+ }
+ }
+ };
+ $contest_submissions_deleter->runAtServer();
+
+ $custom_test_deleter = new UOJForm('custom_test_deleter');
+ $custom_test_deleter->addInput('last', 'text', '删除末尾记录', '5',
+ function ($x, &$vdata) {
+ if (!validateUInt($x)) {
+ return '不合法';
+ }
+ $vdata['last'] = $x;
+ return '';
+ },
+ null
+ );
+ $custom_test_deleter->handle = function(&$vdata) {
+ $all = DB::selectAll("select * from custom_test_submissions order by id asc limit {$vdata['last']}");
+ foreach ($all as $submission) {
+ $content = json_decode($submission['content'], true);
+ unlink(UOJContext::storagePath().$content['file_name']);
+ }
+ DB::delete("delete from custom_test_submissions order by id asc limit {$vdata['last']}");
+ };
+ $custom_test_deleter->runAtServer();
+
+ $judger_adder = new UOJForm('judger_adder');
+ $judger_adder->addInput('judger_adder_name', 'text', '评测机名称', '',
+ function ($x, &$vdata) {
+ if (!validateUsername($x)) {
+ return '不合法';
+ }
+ if (DB::selectCount("select count(*) from judger_info where judger_name='$x'")!=0) {
+ return '不合法';
+ }
+ $vdata['name'] = $x;
+ return '';
+ },
+ null
+ );
+ $judger_adder->handle = function(&$vdata) {
+ $password=uojRandString(32);
+ DB::insert("insert into judger_info (judger_name,password) values('{$vdata['name']}','{$password}')");
+ };
+ $judger_adder->runAtServer();
+
+ $judger_deleter = new UOJForm('judger_deleter');
+ $judger_deleter->addInput('judger_deleter_name', 'text', '评测机名称', '',
+ function ($x, &$vdata) {
+ if (!validateUsername($x)) {
+ return '不合法';
+ }
+ if (DB::selectCount("select count(*) from judger_info where judger_name='$x'")!=1) {
+ return '不合法';
+ }
+ $vdata['name'] = $x;
+ return '';
+ },
+ null
+ );
+ $judger_deleter->handle = function(&$vdata) {
+ DB::delete("delete from judger_info where judger_name='{$vdata['name']}'");
+ };
+ $judger_deleter->runAtServer();
+
+ $judgerlist_cols = array('judger_name', 'password');
+ $judgerlist_config = array();
+ $judgerlist_header_row = <<
+ 评测机名称 |
+ 密码 |
+
+EOD;
+ $judgerlist_print_row = function($row) {
+ echo <<
+ {$row['judger_name']} |
+ {$row['password']} |
+
+EOD;
+ };
+
+ $userlist_cols = array('username', 'school', 'usergroup', 'usertype', 'register_time');
+ $userlist_config = array('page_len' => 20,
+ 'table_classes' => array('table', 'table-bordered', 'table-hover', 'table-striped'));
+ $userlist_header_row = <<
+ 用户名 |
+ 学校 |
+ 用户类别 |
+ 注册时间 |
+
+EOD;
+
+ $cur_tab = isset($_GET['tab']) ? $_GET['tab'] : 'users';
+
+ $user_list_cond = array();
+ if ($cur_tab === 'users') {
+ if (isset($_GET['username']) && $_GET['username'] != "") {
+ $user_list_cond[] = "username like '%" . DB::escape($_GET['username']) . "%'";
+ }
+ if (isset($_GET['usergroup']) && $_GET['usergroup'] != "") {
+ $user_list_cond[] = "usergroup = '" . DB::escape($_GET['usergroup']) . "'";
+ }
+ }
+ if ($user_list_cond) {
+ $user_list_cond = join($user_list_cond, ' and ');
+ } else {
+ $user_list_cond = '1';
+ }
+
+ $userlist_print_row = function($row) {
+ $hislink = getUserLink($row['username']);
+ echo <<
+ ${hislink} |
+ {$row['school']} |
+ {$row['usergroup']}, {$row['usertype']} |
+ {$row['register_time']} |
+
+EOD;
+ };
+
+ $image_hosting_cols = ['*'];
+ $image_hosting_config = ['page_len' => 20, 'table_classes' => ['table', 'table-bordered', 'table-hover', 'table-striped']];
+ $image_hosting_header_row = <<
+ ID |
+ 上传者 |
+ 预览 |
+ 文件大小 |
+ 上传时间 |
+
+EOD;
+ $image_hosting_print_row = function($row) {
+ $user_link = getUserLink($row['uploader']);
+ if ($row['size'] < 1024 * 512) {
+ $size = strval(round($row['size'] * 1.0 / 1024, 1)) . ' KB';
+ } else {
+ $size = strval(round($row['size'] * 1.0 / 1024 / 1024, 1)) . ' MB';
+ }
+
+ echo <<
+ {$row['id']} |
+ $user_link |
+ |
+ $size |
+ {$row['upload_time']} |
+
+EOD;
+ };
+
+ $image_deleter = new UOJForm('image_deleter');
+ $image_deleter->submit_button_config['align'] = 'compressed';
+ $image_deleter->submit_button_config['text'] = '删除';
+ $image_deleter->submit_button_config['class_str'] = 'btn btn-danger';
+ $image_deleter->addInput('image_deleter_id', 'text', '图片 ID', '',
+ function ($x, &$vdata) {
+ if (!validateUInt($x)) {
+ return 'ID 不合法';
+ }
+ if (!DB::selectCount("select count(*) from users_images where id = $x")) {
+ return '图片不存在';
+ }
+ $vdata['id'] = $x;
+ return '';
+ },
+ null
+ );
+ $image_deleter->handle = function(&$vdata) {
+ $id = $vdata['id'];
+ $result = DB::selectFirst("SELECT * from users_images WHERE id = $id");
+ unlink(UOJContext::storagePath().$result['path']);
+ DB::delete("DELETE FROM users_images WHERE id = $id");
+ };
+ $image_deleter->runAtServer();
+
+ $change_user_image_total_size_limit_form = new UOJForm('change_user_image_total_size_limit');
+ $change_user_image_total_size_limit_form->submit_button_config['align'] = 'compressed';
+ $change_user_image_total_size_limit_form->addInput('change_user_image_total_size_limit_username', 'text', '用户名', '',
+ function ($x, &$vdata) {
+ if (!validateUsername($x)) {
+ return '用户名不合法';
+ }
+ if (!queryUser($x)) {
+ return '用户不存在';
+ }
+ $vdata['username'] = $x;
+ return '';
+ },
+ null
+ );
+ $change_user_image_total_size_limit_form->addInput('change_user_image_total_size_limit_limit', 'text', '存储限制(单位:Byte)', '104857600',
+ function ($x, &$vdata) {
+ if (!validateUInt($x, 10)) {
+ return '限制不合法';
+ }
+ if (intval($x) > 2147483648) {
+ return '限制不能大于 2 GB';
+ }
+ $vdata['limit'] = $x;
+ return '';
+ },
+ null
+ );
+ $change_user_image_total_size_limit_form->handle = function(&$vdata) {
+ DB::update("UPDATE user_info SET images_size_limit = {$vdata['limit']} WHERE username = '{$vdata['username']}'");
+ };
+ $change_user_image_total_size_limit_form->runAtServer();
+
+ $tabs_info = array(
+ 'users' => array(
+ 'name' => '用户管理',
+ 'url' => "/super-manage/users"
+ ),
+ 'blogs' => array(
+ 'name' => '博客管理',
+ 'url' => "/super-manage/blogs"
+ ),
+ 'index' => array(
+ 'name' => '首页管理',
+ 'url' => '/super-manage/index'
+ ),
+ 'submissions' => array(
+ 'name' => '提交记录',
+ 'url' => "/super-manage/submissions"
+ ),
+ 'custom-test' => array(
+ 'name' => '自定义测试',
+ 'url' => '/super-manage/custom-test'
+ ),
+ 'judger' => array(
+ 'name' => '评测机管理',
+ 'url' => '/super-manage/judger'
+ ),
+ 'image_hosting' => array(
+ 'name' => '图床管理',
+ 'url' => '/super-manage/image_hosting'
+ )
+ );
+
+ if (!isset($tabs_info[$cur_tab])) {
+ become404Page();
+ }
+ ?>
+
+
+
+
+ = HTML::tablist($tabs_info, $cur_tab, 'nav-pills flex-column') ?>
+
+
+
+
+
添加新用户
+ printHTML(); ?>
+
修改用户密码
+ printHTML(); ?>
+
用户类别设置
+
在此处更新用户所属类别后会自动重置用户权限。
+ printHTML(); ?>
+
用户权限管理
+ printHTML(); ?>
+
修改用户真实姓名
+ printHTML(); ?>
+
修改用户学校名称
+ printHTML(); ?>
+
用户名单
+
+
+
+
+
添加到公告
+ printHTML(); ?>
+
+
+
+
删除博客
+ printHTML(); ?>
+
+
+
+
倒计时
+
+ 添加倒计时
+ printHTML(); ?>
+ 删除倒计时
+ printHTML(); ?>
+
+ 友情链接
+
+ 添加友情链接
+ printHTML(); ?>
+ 删除友情链接
+ printHTML(); ?>
+
+
+
+
删除赛前提交记录
+ printHTML(); ?>
+
+
+
测评失败的提交记录
+ ''), $myUser); ?>
+
+
+ printHTML() ?>
+ array('*'),
+ 'table_name' => 'custom_test_submissions',
+ 'cond' => '1',
+ 'tail' => 'order by id asc',
+ 'page_len' => 5
+ ));
+ foreach ($submissions_pag->get() as $submission) {
+ $problem = queryProblemBrief($submission['problem_id']);
+ $submission_result = json_decode($submission['result'], true);
+ echo '
';
+ echo '- id
';
+ echo '- ', "#{$submission['id']}", '
';
+ echo '- problem_id
';
+ echo '- ', "#{$submission['problem_id']}", '
';
+ echo '- submit time
';
+ echo '- ', $submission['submit_time'], '
';
+ echo '- submitter
';
+ echo '- ', $submission['submitter'], '
';
+ echo '- judge_time
';
+ echo '- ', $submission['judge_time'], '
';
+ echo '
';
+ echoSubmissionContent($submission, getProblemCustomTestRequirement($problem));
+ echoCustomTestSubmissionDetails($submission_result['details'], "submission-{$submission['id']}-details");
+ }
+ ?>
+ = $submissions_pag->pagination() ?>
+
+
+
添加评测机
+ printHTML(); ?>
+
+
+
删除评测机
+ printHTML(); ?>
+
+
评测机列表
+
+
+
图床管理
+
+
+
删除图片
+ printHTML() ?>
+
+
+
修改用户存储上限
+ printHTML() ?>
+
+
+
+
+
diff --git a/web/app/controllers/user_info_edit.php b/web/app/controllers/user_info_edit.php
index dbd9f49..a79092c 100644
--- a/web/app/controllers/user_info_edit.php
+++ b/web/app/controllers/user_info_edit.php
@@ -341,7 +341,7 @@ EOD);
diff --git a/web/app/libs/uoj-form-lib.php b/web/app/libs/uoj-form-lib.php
index 897111a..18560c2 100644
--- a/web/app/libs/uoj-form-lib.php
+++ b/web/app/libs/uoj-form-lib.php
@@ -111,7 +111,7 @@ EOD;