feat(web): drop bs4
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Baoshuo Ren 2022-10-22 21:12:13 +08:00
parent 236a152f51
commit 277e69f507
Signed by: baoshuo
GPG Key ID: 00CB9680AB29F51A
24 changed files with 236 additions and 605 deletions

View File

@ -7,10 +7,7 @@
become403Page();
}
if (!isset($_COOKIE['bootstrap4'])) {
$REQUIRE_LIB['bootstrap5'] = '';
}
requireLib('bootstrap5');
requirePHPLib('form');
function echoBlogCell($blog) {
@ -45,22 +42,16 @@
</tr>
EOD;
$config = [
'table_classes' => ['table', 'table-hover'],
'page_len' => 40
'page_len' => 40,
'div_classes' => ['card', 'my-3'],
'table_classes' => ['table', 'uoj-table', 'mb-0'],
];
if (isset($REQUIRE_LIB['bootstrap5'])) {
$config['div_classes'] = ['card', 'my-3'];
$config['table_classes'] = ['table', 'uoj-table', 'mb-0'];
}
?>
<?php echoUOJPageHeader(UOJLocale::get('announcements')) ?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="row">
<!-- left col -->
<div class="col-lg-9">
<?php endif ?>
<h1 class="h2">
<?= UOJLocale::get('announcements') ?>
@ -68,7 +59,6 @@ EOD;
<?php echoLongTable(array('blogs.id', 'poster', 'title', 'post_time', 'zan', 'level'), 'important_blogs, blogs', 'is_hidden = 0 and important_blogs.blog_id = blogs.id', 'order by level desc, important_blogs.blog_id desc', $header, 'echoBlogCell', $config); ?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
</div>
<!-- end left col -->
@ -79,6 +69,5 @@ EOD;
<!-- end right col -->
</div>
<?php endif ?>
<?php echoUOJPageFooter() ?>

View File

@ -1,4 +1,5 @@
<?php
requireLib('bootstrap5');
requirePHPLib('form');
if (!Auth::check() && UOJConfig::$data['switch']['force-login']) {
@ -8,62 +9,21 @@
if (!isNormalUser($myUser) && UOJConfig::$data['switch']['force-login']) {
become403Page();
}
if (!isset($_COOKIE['bootstrap4'])) {
$REQUIRE_LIB['bootstrap5'] = '';
}
function echoBlogCell($blog) {
global $REQUIRE_LIB;
echo '<tr>';
if ($blog['is_hidden']) {
echo '<td><span class="text-danger">[已隐藏]</span> ' . getBlogLink($blog['id']) . '</td>';
} else {
echo '<td>' . getBlogLink($blog['id']) . '</td>';
}
echo '<td>' . getUserLink($blog['poster']) . '</td>';
echo '<td>' . $blog['post_time'] . '</td>';
echo '</tr>';
}
$header = <<<EOD
<tr>
<th width="60%">标题</th>
<th width="20%">发表者</th>
<th width="20%">发表日期</th>
</tr>
EOD;
$config = array();
$config['table_classes'] = array('table', 'table-hover');
if (isset($REQUIRE_LIB['bootstrap5'])) {
$config['div_classes'] = array('card', 'my-3', 'table-responsive');
$config['table_classes'] = array('table', 'uoj-table', 'mb-0');
}
?>
<?php echoUOJPageHeader(UOJLocale::get('blogs')) ?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="row">
<!-- left col -->
<div class="col-lg-9">
<div class="d-flex flex-wrap justify-content-between">
<?php endif ?>
<?php if (!isset($REQUIRE_LIB['bootstrap5'])): ?>
<?php if (Auth::check()): ?>
<div class="float-right">
<div class="btn-group">
<a href="<?= HTML::blog_url(Auth::id(), '/') ?>" class="btn btn-secondary btn-sm">我的博客首页</a>
<a href="<?= HTML::blog_url(Auth::id(), '/post/new/write')?>" class="btn btn-primary btn-sm"><span class="glyphicon glyphicon-edit"></span> 写新博客</a>
</div>
</div>
<?php endif ?>
<?php endif ?>
<!-- title container -->
<div class="d-flex flex-wrap justify-content-between align-items-center">
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<h1 class="h2">
<?= UOJLocale::get("blogs overview") ?>
</h1>
<div class="text-end">
<div class="btn-group">
<a href="<?= HTML::blog_url(Auth::id(), '/') ?>" class="btn btn-secondary btn-sm">
@ -75,24 +35,50 @@ EOD;
</a>
</div>
</div>
<?php else: ?>
<h3>博客总览</h3>
<?php endif ?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
</div>
<?php endif ?>
<!-- end title container -->
<?php echoLongTable(array('id', 'poster', 'title', 'post_time', 'zan', 'is_hidden'), 'blogs', isSuperUser($myUser) ? "1" : "is_hidden = 0 or poster = '{$myUser['username']}'", 'order by post_time desc', $header, 'echoBlogCell', $config); ?>
<?php
echoLongTable(
['id', 'poster', 'title', 'post_time', 'zan', 'is_hidden'],
'blogs',
isSuperUser($myUser) ? "1" : "is_hidden = 0 or poster = '{$myUser['username']}'",
'order by post_time desc',
<<<EOD
<tr>
<th width="60%">标题</th>
<th width="20%">发表者</th>
<th width="20%">发表日期</th>
</tr>
EOD,
function($blog) {
echo '<tr>';
echo '<td>';
echo getBlogLink($blog['id']);
if ($blog['is_hidden']) {
echo ' <span class="badge text-bg-danger"><i class="bi bi-eye-slash-fill"></i> ', UOJLocale::get('hidden'), '</span> ';
}
echo '</td>';
echo '<td>' . getUserLink($blog['poster']) . '</td>';
echo '<td>' . $blog['post_time'] . '</td>';
echo '</tr>';
},
[
'page_len' => 10,
'div_classes' => ['card', 'my-3', 'table-responsive'],
'table_classes' => ['table', 'uoj-table', 'mb-0'],
]
);
?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
</div>
<!-- right col -->
<aside class="col-lg-3 mt-3 mt-lg-0">
<?php uojIncludeView('sidebar', array()) ?>
<?php uojIncludeView('sidebar') ?>
</aside>
<!-- end right col -->
</div>
<?php endif ?>
<?php echoUOJPageFooter() ?>

View File

@ -1,9 +1,8 @@
<?php
requireLib('bootstrap5');
requireLib('mathjax');
requirePHPLib('form');
$REQUIRE_LIB['bootstrap5'] = '';
$REQUIRE_LIB['mathjax'] = '';
if (!Auth::check() && UOJConfig::$data['switch']['force-login']) {
redirectToLogin();
}
@ -354,7 +353,7 @@ EOD;
}
function echoDashboard() {
global $contest, $post_notice, $post_question, $reply_question, $REQUIRE_LIB;
global $contest, $post_notice, $post_question, $reply_question;
$myname = Auth::id();
$contest_problems = DB::selectAll("select contests_problems.problem_id, best_ac_submissions.submission_id from contests_problems left join best_ac_submissions on contests_problems.problem_id = best_ac_submissions.problem_id and submitter = '{$myname}' where contest_id = {$contest['id']} order by contests_problems.dfn, contests_problems.problem_id");
@ -389,7 +388,6 @@ EOD;
'post_question' => $post_question,
'my_questions_pag' => $my_questions_pag,
'others_questions_pag' => $others_questions_pag,
'REQUIRE_LIB' => $REQUIRE_LIB,
]);
}

View File

@ -1,4 +1,5 @@
<?php
requireLib('bootstrap5');
requirePHPLib('form');
if (!Auth::check() && UOJConfig::$data['switch']['force-login']) {
@ -13,10 +14,6 @@
become404Page();
}
if (!isset($_COOKIE['bootstrap4'])) {
$REQUIRE_LIB['bootstrap5'] = '';
}
genMoreContestInfo($contest);
if (isSuperUser($myUser)) {
@ -178,26 +175,24 @@
?>
<?php echoUOJPageHeader(HTML::stripTags($contest['name']) . ' - ' . UOJLocale::get('contests::contest registrants')) ?>
<h1 class="h2 text-center"><?= $contest['name'] ?></h1>
<h1 class="h2 text-center">
<?= $contest['name'] ?>
</h1>
<?php if ($contest['cur_progress'] == CONTEST_NOT_STARTED): ?>
<?php if ($iHasRegistered): ?>
<div class="row">
<div class="col-6">
<a style="color:green">已报名</a>
</div>
<div class="col-6
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
text-end
<?php else: ?>
text-right
<?php endif ?>">
<div class="col-6 text-end">
<?php $unregister_form->printHTML(); ?>
</div>
</div>
<?php else: ?>
<div>当前尚未报名,您可以<a style="color:red" href="/contest/<?= $contest['id'] ?>/register">报名</a></div>
<div>当前尚未报名,您可以 <a class="text-decoration-none text-danger" href="/contest/<?= $contest['id'] ?>/register">报名</a></div>
<?php endif ?>
<div class="top-buffer-sm"></div>
<div class="mt-2"></div>
<?php endif ?>
<?php
@ -220,63 +215,56 @@
}
$header_row .= '</tr>';
$config = array('page_len' => 100,
'get_row_index' => '',
'print_after_table' => function() {
global $add_new_contestant_form,
$add_group_to_contest_form,
$remove_user_from_contest_form,
$force_set_user_participated_form;
if (isset($add_new_contestant_form)) {
$add_new_contestant_form->printHTML();
}
if (isset($add_group_to_contest_form)) {
$add_group_to_contest_form->printHTML();
}
if (isset($remove_user_from_contest_form)) {
$remove_user_from_contest_form->printHTML();
}
if (isset($force_set_user_participated_form)) {
$force_set_user_participated_form->printHTML();
}
}
);
if (isset($REQUIRE_LIB['bootstrap5'])) {
$config['div_classes'] = array('card', 'mb-3');
$config['table_classes'] = array('table', 'uoj-table', 'mb-0', 'text-center');
}
echoLongTable(array('*'), 'contests_registrants', "contest_id = {$contest['id']}", 'order by username desc',
echoLongTable(
['*'],
'contests_registrants',
"contest_id = {$contest['id']}",
'order by username desc',
$header_row,
function($contest, $num) {
global $myUser;
global $has_contest_permission, $show_ip, $ip_owner, $has_participated;
$user = queryUser($contest['username']);
$user_link = getUserLink($contest['username']);
function($contestant, $num) use ($myUser, $has_contest_permission, $show_ip, $ip_owner, $has_participated) {
$user = queryUser($contestant['username']);
if (!$show_ip) {
echo '<tr>';
} else {
if ($ip_owner[$user['remote_addr']] != $user['username'] || $forwarded_ip_owner[$user['http_x_forwarded_for']] != $user['username']) {
echo '<tr class="danger">';
echo '<tr class="table-danger">';
} else {
echo '<tr>';
}
}
echo '<td>'.$num.'</td>';
echo '<td>'.$user_link.'</td>';
echo '<td>'.getUserLink($contestant['username']).'</td>';
if ($show_ip) {
echo '<td>'.$user['remote_addr'].'</td>';
echo '<td>'.$user['http_x_forwarded_for'].'</td>';
}
if ($has_contest_permission) {
echo '<td>'.($has_participated[$user['username']] ? 'Yes' : 'No').'</td>';
echo '<td>'.($contestant['has_participated'] ? 'Yes' : 'No').'</td>';
}
echo '</tr>';
},
$config
[
'page_len' => 50,
'get_row_index' => '',
'div_classes' => ['table-responsive', 'card', 'mb-3'],
'table_classes' => ['table', 'uoj-table', 'mb-0', 'text-center'],
]
);
?>
<?php
if (isset($add_new_contestant_form)) {
$add_new_contestant_form->printHTML();
}
if (isset($add_group_to_contest_form)) {
$add_group_to_contest_form->printHTML();
}
if (isset($remove_user_from_contest_form)) {
$remove_user_from_contest_form->printHTML();
}
if (isset($force_set_user_participated_form)) {
$force_set_user_participated_form->printHTML();
}
?>
<?php echoUOJPageFooter() ?>

View File

@ -1,28 +1,19 @@
<?php
requireLib('bootstrap5');
requirePHPLib('form');
if (!Auth::check() && UOJConfig::$data['switch']['force-login']) {
redirectToLogin();
}
if (!isset($_COOKIE['bootstrap4'])) {
$REQUIRE_LIB['bootstrap5'] = '';
}
$upcoming_contest_name = null;
$upcoming_contest_href = null;
$rest_second = 1000000;
function echoContest($contest) {
global $myUser, $upcoming_contest_name, $upcoming_contest_href, $rest_second, $REQUIRE_LIB;
global $myUser, $upcoming_contest_name, $upcoming_contest_href, $rest_second;
$a_class = ' ';
if (isset($REQUIRE_LIB['bootstrap5'])) {
$a_class = ' class="text-decoration-none" ';
}
$contest_name_link = <<<EOD
<a $a_class href="/contest/{$contest['id']}">{$contest['name']}</a>
<a class="text-decoration-none" href="/contest/{$contest['id']}">{$contest['name']}</a>
EOD;
genMoreContestInfo($contest);
if ($contest['cur_progress'] == CONTEST_NOT_STARTED) {
@ -33,18 +24,18 @@ EOD;
$rest_second = $cur_rest_second;
}
if ($myUser != null && hasRegistered($myUser, $contest)) {
$contest_name_link .= '<sup><a '.$a_class.' style="color:green">'.UOJLocale::get('contests::registered').'</a></sup>';
$contest_name_link .= '<sup><a class="text-decoration-none" style="color:green">'.UOJLocale::get('contests::registered').'</a></sup>';
} else {
$contest_name_link .= '<sup><a '.$a_class.' style="color:red" href="/contest/'.$contest['id'].'/register">'.UOJLocale::get('contests::register').'</a></sup>';
$contest_name_link .= '<sup><a class="text-decoration-none" style="color:red" href="/contest/'.$contest['id'].'/register">'.UOJLocale::get('contests::register').'</a></sup>';
}
} elseif ($contest['cur_progress'] == CONTEST_IN_PROGRESS) {
$contest_name_link .= '<sup><a '.$a_class.' style="color:blue" href="/contest/'.$contest['id'].'">'.UOJLocale::get('contests::in progress').'</a></sup>';
$contest_name_link .= '<sup><a class="text-decoration-none" style="color:blue" href="/contest/'.$contest['id'].'">'.UOJLocale::get('contests::in progress').'</a></sup>';
} elseif ($contest['cur_progress'] == CONTEST_PENDING_FINAL_TEST) {
$contest_name_link .= '<sup><a '.$a_class.' style="color:blue" href="/contest/'.$contest['id'].'">'.UOJLocale::get('contests::pending final test').'</a></sup>';
$contest_name_link .= '<sup><a class="text-decoration-none" style="color:blue" href="/contest/'.$contest['id'].'">'.UOJLocale::get('contests::pending final test').'</a></sup>';
} elseif ($contest['cur_progress'] == CONTEST_TESTING) {
$contest_name_link .= '<sup><a '.$a_class.' style="color:blue" href="/contest/'.$contest['id'].'">'.UOJLocale::get('contests::final testing').'</a></sup>';
$contest_name_link .= '<sup><a class="text-decoration-none" style="color:blue" href="/contest/'.$contest['id'].'">'.UOJLocale::get('contests::final testing').'</a></sup>';
} elseif ($contest['cur_progress'] == CONTEST_FINISHED) {
$contest_name_link .= '<sup><a '.$a_class.'style="color:grey" href="/contest/'.$contest['id'].'/standings">'.UOJLocale::get('contests::ended').'</a></sup>';
$contest_name_link .= '<sup><a class="text-decoration-none" style="color:grey" href="/contest/'.$contest['id'].'/standings">'.UOJLocale::get('contests::ended').'</a></sup>';
}
$last_hour = round($contest['last_min'] / 60, 2);
@ -52,44 +43,33 @@ EOD;
$click_zan_block = getClickZanBlock('C', $contest['id'], $contest['zan']);
echo '<tr>';
echo '<td>', $contest_name_link, '</td>';
echo '<td>', '<a'.$a_class.'href="'.HTML::timeanddate_url($contest['start_time'], array('duration' => $contest['last_min'])).'">'.$contest['start_time_str'].'</a>', '</td>';
echo '<td>', '<a class="text-decoration-none" href="'.HTML::timeanddate_url($contest['start_time'], array('duration' => $contest['last_min'])).'">'.$contest['start_time_str'].'</a>', '</td>';
echo '<td>', UOJLocale::get('hours', $last_hour), '</td>';
echo '<td>', '<a'.$a_class.'href="/contest/'.$contest['id'].'/registrants">';
if (isset($REQUIRE_LIB['bootstrap5'])) {
echo '<i class="bi bi-person-fill"></i>';
} else {
echo '<span class="glyphicon glyphicon-user"></span>';
}
echo ' &times;'.$contest['player_num'].'</a>', '</td>';
echo '<td>', '<a class="text-decoration-none" href="/contest/'.$contest['id'].'/registrants">', '<i class="bi bi-person-fill"></i>', ' &times;'.$contest['player_num'].'</a>', '</td>';
echo '<td>', '<div class="text-left">'.$click_zan_block.'</div>', '</td>';
echo '</tr>';
}
?>
<?php echoUOJPageHeader(UOJLocale::get('contests')) ?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<!-- title container -->
<div class="d-flex justify-content-between">
<?php endif ?>
<h1 class="h2">
<?= UOJLocale::get('contests') ?>
</h1>
<?php
if (isSuperUser($myUser)) {
if (isset($REQUIRE_LIB['bootstrap5'])) {
echo '<div class="text-end">';
} else {
echo '<div class="text-right">';
}
echo '<a href="/contest/new" class="btn btn-primary">'.UOJLocale::get('contests::add new contest').'</a>';
echo '</div>';
}
?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<?php if (isSuperUser($myUser)): ?>
<div class="text-end">
<a href="/contest/new" class="btn btn-primary"><?= UOJLocale::get('contests::add new contest') ?></a>
</div>
<?php endif ?>
<h4><?= UOJLocale::get('contests::current or upcoming contests') ?></h4>
</div>
<!-- end title container -->
<h2 class="h4">
<?= UOJLocale::get('contests::current or upcoming contests') ?>
</h2>
<?php
$table_header = '';
$table_header .= '<tr>';
@ -100,12 +80,18 @@ if (isSuperUser($myUser)) {
$table_header .= '<th style="width:180px;">'.UOJLocale::get('appraisal').'</th>';
$table_header .= '</tr>';
$table_config = array('page_len' => 40);
if (isset($REQUIRE_LIB['bootstrap5'])) {
$table_config['div_classes'] = array('card', 'mb-3');
$table_config['table_classes'] = array('table', 'uoj-table', 'mb-0', 'text-center');
}
echoLongTable(array('*'), 'contests', "status != 'finished'", 'order by start_time asc, id asc', $table_header,
$table_config = [
'page_len' => 40,
'div_classes' => ['card', 'mb-3'],
'table_classes' => ['table', 'uoj-table', 'mb-0', 'text-center'],
];
echoLongTable(
['*'],
'contests',
"status != 'finished'",
'order by start_time asc, id asc',
$table_header,
echoContest,
$table_config
);
@ -128,9 +114,16 @@ EOD;
}
?>
<h4><?= UOJLocale::get('contests::ended contests') ?></h4>
<h2 class="h4">
<?= UOJLocale::get('contests::ended contests') ?>
</h2>
<?php
echoLongTable(array('*'), 'contests', "status = 'finished'", 'order by start_time desc, id desc', $table_header,
echoLongTable(
['*'],
'contests',
"status = 'finished'",
'order by start_time desc, id desc',
$table_header,
echoContest,
$table_config
);

View File

@ -3,28 +3,20 @@
$countdowns = DB::selectAll("select * from countdowns order by end_time asc");
$friend_links = DB::selectAll("select * from friend_links order by level desc, id asc");
if (!isset($_COOKIE['bootstrap4'])) {
$REQUIRE_LIB['bootstrap5'] = '';
}
requireLib('bootstrap5');
?>
<?php echoUOJPageHeader(UOJConfig::$data['profile']['oj-name-short']) ?>
<div class="row">
<div class="col-lg-9">
<div class="card card-default">
<div class="card-body">
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<h4 class="card-title">
<?= UOJLocale::get('announcements') ?>
</h4>
<?php endif ?>
<h4 class="card-title">
<?= UOJLocale::get('announcements') ?>
</h4>
<table class="table table-sm">
<thead>
<tr>
<th style="width:60%">
<?php if (!isset($REQUIRE_LIB['bootstrap5'])): ?>
<?= UOJLocale::get('announcements') ?>
<?php endif ?>
</th>
<th style="width:60%"></th>
<th style="width:20%"></th>
<th style="width:20%"></th>
</tr>
@ -41,11 +33,7 @@
?>
<tr>
<td>
<a href="/blogs/<?= $blog['id'] ?>"
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
class="text-decoration-none"
<?php endif ?>
><?= $blog['title'] ?></a>
<a href="/blogs/<?= $blog['id'] ?>" class="text-decoration-none"><?= $blog['title'] ?></a>
<?= $new_tag ?>
</td>
<td>by <?= getUserLink($blog['poster']) ?></td>
@ -55,51 +43,33 @@
<?php for ($i = $now_cnt + 1; $i <= 5; $i++): ?>
<tr><td colspan="233">&nbsp;</td></tr>
<?php endfor ?>
<?php if (!isset($REQUIRE_LIB['bootstrap5'])): ?>
<tr><td class="text-right" colspan="233"><a href="/announcements"><?= UOJLocale::get('all the announcements') ?></a></td></tr>
<?php endif ?>
</tbody>
</table>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="text-end">
<a class="text-decoration-none" href="/announcements"><?= UOJLocale::get('all the announcements') ?></a>
</div>
<?php endif ?>
<div class="text-end">
<a class="text-decoration-none" href="/announcements">
<?= UOJLocale::get('all the announcements') ?>
</a>
</div>
</div>
</div>
<?php if (!UOJConfig::$data['switch']['force-login'] || Auth::check()): ?>
<?php if (!UOJConfig::$data['switch']['force-login'] || isNormalUser($myUser)): ?>
<div class="mt-4
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
card
<?php endif ?>
">
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="mt-4 card">
<div class="card-body">
<h4 class="card-title"><?= UOJLocale::get('top solver') ?></h4>
<?php else: ?>
<h3><?= UOJLocale::get('top solver') ?></h3>
<?php endif ?>
<?php echoRanklist(array(
<?php echoRanklist([
'echo_full' => true,
'top10' => true,
'by_accepted' => true,
'table_classes' => isset($REQUIRE_LIB['bootstrap5'])
? array('table', 'text-center')
: array('table', 'table-bordered', 'table-hover', 'table-striped', 'table-text-center'),
)) ?>
'table_classes' => ['table', 'text-center'],
]) ?>
<div class="text-center">
<a href="/solverlist"
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
class="text-decoration-none"
<?php endif ?>
><?= UOJLocale::get('view all') ?></a>
<a href="/solverlist" class="text-decoration-none">
<?= UOJLocale::get('view all') ?>
</a>
</div>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
</div>
<?php endif ?>
</div>
<?php endif ?>
<?php else: ?>
@ -115,23 +85,11 @@
<img class="media-object img-thumbnail" src="/images/logo.png" alt="Logo" />
</div>
<div class="card card-default mb-2">
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="card-header bg-white">
<b><?= UOJLocale::get('countdowns') ?></b>
</div>
<?php endif ?>
<div class="card-body">
<?php if (!isset($REQUIRE_LIB['bootstrap5'])): ?>
<h4 class="card-title" style="font-size: 1.25rem">
<?= UOJLocale::get('countdowns') ?>
</h4>
<?php endif ?>
<ul class="
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
list-unstyled
<?php else: ?>
pl-4
<?php endif ?> mb-0">
<ul class="list-unstyled mb-0">
<?php foreach ($countdowns as $countdown): ?>
<?php
$enddate = strtotime($countdown['end_time']);
@ -156,37 +114,20 @@
</div>
<?php if (Auth::check()): ?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<?php uojIncludeView('sidebar', ['assignments_hidden' => '', 'groups_hidden' => '']) ?>
<?php endif ?>
<?php uojIncludeView('sidebar', ['assignments_hidden' => '', 'groups_hidden' => '']) ?>
<?php endif ?>
<div class="card card-default mb-2">
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="card-header bg-white">
<b><?= UOJLocale::get('friend links') ?></b>
</div>
<?php endif ?>
<div class="card-header bg-white">
<b><?= UOJLocale::get('friend links') ?></b>
</div>
<div class="card-body">
<?php if (!isset($REQUIRE_LIB['bootstrap5'])): ?>
<h4 class="card-title" style="font-size: 1.25rem">
<?= UOJLocale::get('friend links') ?>
</h4>
<?php endif ?>
<ul class="
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
ps-3
<?php else: ?>
pl-4
<?php endif ?>
mb-0">
<ul class="ps-3 mb-0">
<?php foreach ($friend_links as $friend_link): ?>
<li>
<a
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
class="text-decoration-none"
<?php endif ?>
href="<?= $friend_link['url'] ?>" target="_blank"><?= $friend_link['title'] ?></a>
<a class="text-decoration-none" href="<?= $friend_link['url'] ?>" target="_blank">
<?= $friend_link['title'] ?>
</a>
</li>
<?php endforeach ?>
</ul>

View File

@ -1,6 +1,9 @@
<?php
use Gregwar\Captcha\PhraseBuilder;
use Gregwar\Captcha\CaptchaBuilder;
requireLib('md5');
requireLib('bootstrap5');
if (Auth::check()) {
redirectTo('/');
@ -50,10 +53,6 @@
die();
}
?>
<?php
$REQUIRE_LIB['bootstrap5'] = '';
$REQUIRE_LIB['md5'] = '';
?>
<?php echoUOJPageHeader(UOJLocale::get('login')) ?>
<style>

View File

@ -1,4 +1,7 @@
<?php
requireLib('bootstrap5');
requireLib('hljs');
requireLib('mathjax');
requirePHPLib('form');
requirePHPLib('judger');
@ -9,10 +12,6 @@
if (!validateUInt($_GET['id']) || !($problem = queryProblemBrief($_GET['id']))) {
become404Page();
}
if (!isset($_COOKIE['bootstrap4'])) {
$REQUIRE_LIB['bootstrap5'] = '';
}
$problem_content = queryProblemContent($problem['id']);
@ -220,16 +219,6 @@ EOD
}
?>
<?php
requireLib('mathjax');
if (isset($REQUIRE_LIB['bootstrap5'])) {
requireLib('hljs');
} else {
$REQUIRE_LIB['shjs'] = '';
}
?>
<?php echoUOJPageHeader(HTML::stripTags($problem['title']) . ' - ' . UOJLocale::get('problems::problem')) ?>
<?php
$limit = getUOJConf("/var/uoj_data/{$problem['id']}/problem.conf");
@ -239,14 +228,12 @@ EOD
$problem_uploader = $problem['uploader'];
?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="row">
<!-- Left col -->
<div class="col-lg-9">
<?php endif ?>
<?php if (isset($REQUIRE_LIB['bootstrap5']) && $contest): ?>
<?php if ($contest): ?>
<!-- 比赛导航 -->
<?php
$tabs_info = array(
@ -287,65 +274,17 @@ EOD
</div>
<?php endif ?>
<?php if (!isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="row d-flex justify-content-center">
<span class="badge badge-secondary mr-1">时间限制:<?=$time_limit!=null?"$time_limit s":"N/A"?></span>
<span class="badge badge-secondary mr-1">空间限制:<?=$memory_limit!=null?"$memory_limit MB":"N/A"?></span>
<span class="badge badge-secondary mr-1">上传者:<?= $problem_uploader ?: "root" ?></span>
</div>
<div class="float-right">
<?= getClickZanBlock('P', $problem['id'], $problem['zan']) ?>
</div>
<?php endif ?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="card card-default mb-2">
<div class="card-body">
<?php endif ?>
<h1 class="h2 card-title text-center">
<?php if ($contest): ?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<h1 class="h2 card-title text-center">
<?= $problem_letter ?>. <?= $problem['title'] ?>
</h1>
<?php else: ?>
<div class="page-header row">
<h1 class="col-md-3 text-left"><small><?= $contest['name'] ?></small></h1>
<h1 class="col-md-7 text-center"><?= $problem_letter ?>. <?= $problem['title'] ?></h1>
<div class="col-md-2 text-right" id="contest-countdown"></div>
</div>
<div class="btn-group float-right" role="group">
<a role="button" class="btn btn-primary" href="<?= HTML::url("/download.php?type=attachment&id={$problem['id']}") ?>"><span class="glyphicon glyphicon-download-alt"></span> 附件下载</a>
<a role="button" class="btn btn-info" href="/contest/<?= $contest['id'] ?>/problem/<?= $problem['id'] ?>/statistics"><span class="glyphicon glyphicon-stats"></span> <?= UOJLocale::get('problems::statistics') ?></a>
</div>
<?php if ($contest['cur_progress'] <= CONTEST_IN_PROGRESS): ?>
<script type="text/javascript">
$('#contest-countdown').countdown(<?= $contest['end_time']->getTimestamp() - UOJTime::$time_now->getTimestamp() ?>);
</script>
<?php endif ?>
<?php endif ?>
<?php else: ?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<h1 class="h2 card-title text-center">
<?php else: ?>
<h1 class="page-header text-center">
<?php endif ?>
#<?= $problem['id']?>. <?= $problem['title'] ?>
<?php endif ?>
</h1>
<?php if (!isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="btn-group float-right" role="group">
<a role="button" class="btn btn-primary" href="<?= HTML::url("/download.php?type=problem&id={$problem['id']}") ?>"><span class="glyphicon glyphicon-tasks"></span> 测试数据</a>
<a role="button" class="btn btn-primary" href="<?= HTML::url("/download.php?type=attachment&id={$problem['id']}") ?>"><span class="glyphicon glyphicon-download-alt"></span> 附件下载</a>
<a role="button" class="btn btn-info" href="/problem/<?= $problem['id'] ?>/statistics"><span class="glyphicon glyphicon-stats"></span> <?= UOJLocale::get('problems::statistics') ?></a>
</div>
<?php endif ?>
<?php endif ?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="text-center small">
时间限制: <?= $time_limit != null ? "$time_limit s" : "N/A" ?>
&emsp;
@ -355,34 +294,12 @@ $('#contest-countdown').countdown(<?= $contest['end_time']->getTimestamp() - UOJ
</div>
<hr>
<?php endif ?>
<?php if (!isset($REQUIRE_LIB['bootstrap5'])): ?>
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item"><a class="nav-link active" href="#statement" role="tab" data-toggle="tab"><span class="glyphicon glyphicon-book"></span> <?= UOJLocale::get('problems::statement') ?></a></li>
<li class="nav-item"><a class="nav-link" href="#submit" role="tab" data-toggle="tab"><span class="glyphicon glyphicon-upload"></span> <?= UOJLocale::get('problems::submit') ?></a></li>
<?php if ($custom_test_requirement): ?>
<li class="nav-item"><a class="nav-link" href="#custom-test" role="tab" data-toggle="tab"><span class="glyphicon glyphicon-console"></span> <?= UOJLocale::get('problems::custom test') ?></a></li>
<?php endif ?>
<?php if (!$contest || $contest['cur_progress'] >= CONTEST_FINISHED): ?>
<li class="nav-item"><a class="nav-link" href="/problem/<?= $problem['id'] ?>/solutions" role="tab"><?= UOJLocale::get('problems::solutions') ?></a></li>
<?php endif ?>
<?php if (hasProblemPermission($myUser, $problem)): ?>
<li class="nav-item"><a class="nav-link" href="/problem/<?= $problem['id'] ?>/manage/statement" role="tab"><?= UOJLocale::get('problems::manage') ?></a></li>
<?php endif ?>
<?php if ($contest): ?>
<li class="nav-item"><a class="nav-link" href="/contest/<?= $contest['id'] ?>" role="tab"><?= UOJLocale::get('contests::back to the contest') ?></a></li>
<?php endif ?>
</ul>
<?php endif ?>
<?php if (!isset($REQUIRE_LIB['bootstrap5'])): ?>
<link rel="stylesheet" type="text/css" href="<?= HTML::url('/css/markdown.css') ?>">
<?php endif ?>
<div class="tab-content">
<div class="tab-pane active" id="statement">
<article class="mt-3 markdown-body"><?= $problem_content['statement'] ?></article>
<article class="mt-3 markdown-body">
<?= $problem_content['statement'] ?>
</article>
</div>
<div class="tab-pane" id="submit">
<div class="top-buffer-sm"></div>
@ -401,13 +318,9 @@ $('#contest-countdown').countdown(<?= $contest['end_time']->getTimestamp() - UOJ
<?php endif ?>
</div>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
</div>
</div>
<?php endif ?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
</div>
<!-- End left col -->
@ -547,7 +460,6 @@ $(document).ready(function() {
});
});
</script>
<?php endif ?>
<?php if ($contest && $contest['cur_progress'] <= CONTEST_IN_PROGRESS): ?>
<script type="text/javascript">

View File

@ -1,4 +1,5 @@
<?php
requireLib('bootstrap5');
requirePHPLib('form');
if (!Auth::check() && UOJConfig::$data['switch']['force-login']) {
@ -12,10 +13,6 @@
become403Page();
}
if (!isset($_COOKIE['bootstrap4'])) {
$REQUIRE_LIB['bootstrap5'] = '';
}
$managers_form = newAddDelCmdForm('managers',
function($username) {
if (!validateUsername($username) || !queryUser($username)) {
@ -67,25 +64,15 @@
?>
<?php echoUOJPageHeader(HTML::stripTags($problem['title']) . ' - 管理者 - 题目管理') ?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="row">
<!-- left col -->
<div class="col-lg-9">
<?php endif ?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<h1 class="h2">
<?php else: ?>
<h1 class="page-header text-center">
<?php endif ?>
#<?=$problem['id']?>. <?=$problem['title']?> 管理
#<?= $problem['id'] ?>. <?= $problem['title'] ?> 管理
</h1>
<ul class="nav
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
nav-pills my-3
<?php else: ?>
nav-tabs
<?php endif ?>" role="tablist">
<ul class="nav nav-pills my-3" role="tablist">
<li class="nav-item">
<a class="nav-link" href="/problem/<?= $problem['id'] ?>/manage/statement" role="tab">
题面
@ -101,25 +88,12 @@
数据
</a>
</li>
<?php if (!isset($REQUIRE_LIB['bootstrap5'])): ?>
<li class="nav-item">
<a class="nav-link" href="/problem/<?=$problem['id']?>" role="tab">
返回
</a>
</li>
<?php endif ?>
</ul>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="card card-default">
<div class="card-body">
<?php endif ?>
<table class="table
<?php if (!isset($REQUIRE_LIB['bootstrap5'])): ?>
table-hover
<?php endif ?>">
<table class="table">
<thead>
<tr>
<th>#</th>
@ -146,12 +120,9 @@ table-hover
<?php $update_uploader_form->printHTML(); ?>
<?php endif ?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
</div>
</div>
<?php endif ?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<!-- end left col -->
</div>
@ -192,8 +163,8 @@ table-hover
<?php uojIncludeView('sidebar', array()) ?>
</aside>
<!-- end right col -->
</div>
<?php endif ?>
<?php echoUOJPageFooter() ?>

View File

@ -1,5 +1,7 @@
<?php
requireLib('bootstrap5');
requireLib('hljs');
requireLib('mathjax');
requirePHPLib('form');
requirePHPLib('judger');
@ -161,10 +163,6 @@ EOD;
}
}
?>
<?php
$REQUIRE_LIB['mathjax'] = '';
$REQUIRE_LIB['hljs'] = '';
?>
<?php echoUOJPageHeader(UOJLocale::get('problems::solutions') . ' - ' . HTML::stripTags($problem['title'])) ?>

View File

@ -1,4 +1,6 @@
<?php
requireLib('bootstrap5');
requireLib('calendar_heatmap');
requirePHPLib('form');
if (!Auth::check() && UOJConfig::$data['switch']['force-login']) {
@ -8,9 +10,6 @@
if (!isNormalUser($myUser) && UOJConfig::$data['switch']['force-login']) {
become403Page();
}
$REQUIRE_LIB['bootstrap5'] = '';
$REQUIRE_LIB['calendar_heatmap'] = '';
?>
<?php echoUOJPageHeader('关于我') ?>

View File

@ -1,4 +1,7 @@
<?php
requireLib('bootstrap5');
requireLib('mathjax');
requireLib('hljs');
requirePHPLib('form');
if (!Auth::check() && UOJConfig::$data['switch']['force-login']) {
@ -9,8 +12,6 @@
become403Page();
}
$REQUIRE_LIB['bootstrap5'] = '';
$blogs_cond = "poster = '".UOJContext::userid()."'";
if (!UOJContext::hasBlogPermission()) {
$blogs_cond .= " and is_hidden = false";
@ -34,9 +35,6 @@
));
$all_tags = DB::selectAll("select distinct tag from blogs_tags where blog_id in (select id from blogs where $blogs_cond)");
requireLib('mathjax');
requireLib('hljs');
?>
<?php echoUOJPageHeader('日志') ?>

View File

@ -1,4 +1,7 @@
<?php
requireLib('bootstrap5');
requireLib('mathjax');
requireLib('hljs');
requirePHPLib('form');
if (!Auth::check() && UOJConfig::$data['switch']['force-login']) {
@ -26,10 +29,6 @@
}
}
}
if (!isset($_COOKIE['bootstrap4'])) {
$REQUIRE_LIB['bootstrap5'] = '';
}
$comment_form = new UOJForm('comment');
$comment_form->addVTextArea('comment', '内容', '',
@ -161,23 +160,11 @@
'page_len' => 20
));
?>
<?php
$REQUIRE_LIB['mathjax'] = '';
if (isset($REQUIRE_LIB['bootstrap5'])) {
$REQUIRE_LIB['hljs'] = '';
} else {
$REQUIRE_LIB['shjs'] = '';
}
?>
<?php echoUOJPageHeader(HTML::stripTags($blog['title']) . ' - 博客') ?>
<?php echoBlog($blog, array('show_title_only' => isset($_GET['page']) && $_GET['page'] != 1)) ?>
<h2>
评论
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<i class="bi bi-chat-fill"></i>
<?php else: ?>
<span class="glyphicon glyphicon-comment"></span>
<?php endif ?>
</h2>
<div class="list-group">
<?php if ($comments_pag->isEmpty()): ?>
@ -195,59 +182,26 @@
$replies_json = json_encode($replies);
?>
<div id="comment-<?= $comment['id'] ?>" class="list-group-item">
<div class="
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
d-flex
<?php else: ?>
media
<?php endif ?>
">
<div class="comtposterbox mr-3
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
flex-shrink-0
<?php else: ?>
media-left
<?php endif ?>">
<a href="<?= HTML::url('/user/'.$poster['username']) ?>" class="d-none d-sm-block
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
text-decoration-none
<?php endif ?>">
<div class="d-flex">
<div class="comtposterbox mr-3 flex-shrink-0">
<a href="<?= HTML::url('/user/'.$poster['username']) ?>" class="d-none d-sm-block text-decoration-none">
<img class="media-object img-rounded" src="<?= $asrc ?>" alt="avatar" />
</a>
</div>
<div id="comment-body-<?= $comment['id'] ?>" class="comtbox
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
flex-grow-1 ms-3
<?php else: ?>
media-body
<?php endif ?>">
<div id="comment-body-<?= $comment['id'] ?>" class="comtbox flex-grow-1 ms-3">
<div class="row">
<div class="col-sm-6"><?= getUserLink($poster['username']) ?></div>
<div class="col-sm-6
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
text-end
<?php else: ?>
text-right
<?php endif ?>"><?= getClickZanBlock('BC', $comment['id'], $comment['zan']) ?></div>
<div class="col-sm-6 text-end"><?= getClickZanBlock('BC', $comment['id'], $comment['zan']) ?></div>
</div>
<div class="comtbox1"><?= $comment['content'] ?></div>
<ul class="list-inline bot-buffer-no
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
text-end
<?php else: ?>
text-right
<?php endif ?>">
<ul class="list-inline mb-0 text-end">
<li>
<small class="text-muted">
<?= $comment['post_time'] ?>
</small>
</li>
<li>
<a class="
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
text-decoration-none
<?php endif ?>"
id="reply-to-<?= $comment['id'] ?>" href="#">
<a class="text-decoration-none" id="reply-to-<?= $comment['id'] ?>" href="#">
回复
</a>
</li>

View File

@ -1,4 +1,5 @@
<?php
requireLib('bootstrap5');
requirePHPLib('form');
if (!Auth::check() && UOJConfig::$data['switch']['force-login']) {
@ -9,8 +10,6 @@
become403Page();
}
$REQUIRE_LIB['bootstrap5'] = '';
if (!UOJContext::hasBlogPermission()) {
become403Page();
}

View File

@ -1,4 +1,5 @@
<?php
requireLib('bootstrap5');
requirePHPLib('form');
if (!Auth::check() && UOJConfig::$data['switch']['force-login']) {
@ -17,8 +18,6 @@
become404Page();
}
}
requireLib('bootstrap5');
$blog_editor = new UOJBlogEditor();
$blog_editor->name = 'blog';

View File

@ -1,4 +1,8 @@
<?php
requireLib('bootstrap5');
requireLib('hljs');
requireLib('mathjax');
if (!Auth::check() && UOJConfig::$data['switch']['force-login']) {
redirectToLogin();
}
@ -7,10 +11,6 @@
become403Page();
}
if (!isset($_COOKIE['bootstrap4'])) {
$REQUIRE_LIB['bootstrap5'] = '';
}
$blogs_pag = new Paginator(array(
'col_names' => array('*'),
'table_name' => 'blogs',
@ -20,24 +20,11 @@
));
$all_tags = DB::selectAll("select distinct tag from blogs_tags where blog_id in (select id from blogs where $blogs_cond)");
$REQUIRE_LIB['mathjax'] = '';
if (isset($REQUIRE_LIB['bootstrap5'])) {
requireLib('hljs');
} else {
$REQUIRE_LIB['shjs'] = '';
}
?>
<?php echoUOJPageHeader(UOJContext::user()['username'] . '的博客') ?>
<div class="row">
<div class="
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
col-lg-9
<?php else: ?>
col-md-9
<?php endif ?>
">
<div class="col-lg-9">
<?php if ($blogs_pag->isEmpty()): ?>
<div class="text-muted">此人很懒,什么博客也没留下。</div>
<?php else: ?>
@ -49,39 +36,21 @@
<?= $blogs_pag->pagination(); ?>
</div>
</div>
<div class="
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
col-lg-3
<?php else: ?>
col-md-3
<?php endif ?>">
<div class="col-lg-3">
<img class="media-object img-thumbnail center-block" alt="<?= UOJContext::user()['username'] ?> Avatar" src="<?= HTML::avatar_addr(UOJContext::user(), 512) ?>" />
<?php if (UOJContext::hasBlogPermission()): ?>
<div class="btn-group d-flex mt-3">
<a href="<?= HTML::blog_url(UOJContext::userid(), '/post/new/write') ?>" class="btn btn-primary">
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<i class="bi bi-pencil-square"></i>
<?php else: ?>
<span class="glyphicon glyphicon-edit"></span>
<?php endif ?>
写新博客
</a>
<a href="<?= HTML::blog_url(UOJContext::userid(), '/slide/new/write') ?>" class="btn btn-primary">
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<i class="bi bi-file-earmark-slides"></i>
<?php else: ?>
<span class="glyphicon glyphicon-edit"></span>
<?php endif ?>
写新幻灯片
</a>
</div>
<?php endif ?>
<div class="card border-info
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
mt-3
<?php else: ?>
top-buffer-sm
<?php endif ?>">
<div class="card border-info mt-3">
<div class="card-header bg-info">标签</div>
<div class="card-body">
<?php if ($all_tags): ?>

View File

@ -7,12 +7,11 @@
become403Page();
}
requireLib('bootstrap5');
requireLib('mathjax');
requirePHPLib('form');
$username = UOJContext::userid();
$REQUIRE_LIB['bootstrap5'] = '';
$REQUIRE_LIB['mathjax'] = '';
?>
<?php echoUOJPageHeader(UOJLocale::get('contests::contest self reviews')) ?>

View File

@ -1,5 +1,6 @@
<?php
requirePHPLib('form');
requireLib('bootstrap5');
if (!Auth::check() && UOJConfig::$data['switch']['force-login']) {
redirectToLogin();
@ -17,10 +18,6 @@
become404Page();
}
}
if (!isset($_COOKIE['bootstrap4'])) {
$REQUIRE_LIB['bootstrap5'] = '';
}
$blog_editor = new UOJBlogEditor();
$blog_editor->type = 'slide';
@ -78,17 +75,8 @@
$blog_editor->runAtServer();
?>
<?php echoUOJPageHeader('写幻灯片') ?>
<div class="
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
text-end
<?php else: ?>
text-right
<?php endif ?>">
<a class="
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
text-decoration-none
<?php endif ?>
" href="http://uoj.ac/blog/75">这玩意儿怎么用?</a>
<div class="text-end">
<a class="text-decoration-none" href="http://uoj.ac/blog/75">这玩意儿怎么用?</a>
</div>
<?php $blog_editor->printHTML() ?>
<?php echoUOJPageFooter() ?>

View File

@ -1,4 +1,6 @@
<?php
requireLib('bootstrap5');
requireLib('hljs');
requirePHPLib('form');
requirePHPLib('judger');
@ -10,10 +12,6 @@
become404Page();
}
if (!isset($_COOKIE['bootstrap4'])) {
$REQUIRE_LIB['bootstrap5'] = '';
}
$submission_result = json_decode($submission['result'], true);
$problem = queryProblemBrief($submission['problem_id']);
@ -139,13 +137,6 @@
}
}
?>
<?php
if (isset($REQUIRE_LIB['bootstrap5'])) {
$REQUIRE_LIB['hljs'] = '';
} else {
$REQUIRE_LIB['shjs'] = '';
}
?>
<script>
var problem_id = parseInt('<?= $submission['problem_id'] ?>');
</script>
@ -182,47 +173,30 @@
<h4 class="card-title"><?= UOJLocale::get('details') ?></h4>
</div>
<?php if (!isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="card-body">
<?php endif ?>
<?php echoJudgementDetails($submission_result['details'], $styler, 'details') ?>
<?php if ($should_show_details_to_me): ?>
<?php if (isset($submission_result['final_result'])): ?>
<hr />
<?php echoSubmissionDetails($submission_result['final_result']['details'], 'final_details') ?>
<?php endif ?>
<?php if ($styler->fade_all_details): ?>
<hr />
<?php echoSubmissionDetails($submission_result['details'], 'final_details') ?>
<?php endif ?>
<?php echoJudgementDetails($submission_result['details'], $styler, 'details') ?>
<?php if ($should_show_details_to_me): ?>
<?php if (isset($submission_result['final_result'])): ?>
<hr />
<?php echoSubmissionDetails($submission_result['final_result']['details'], 'final_details') ?>
<?php endif ?>
<?php if ($styler->fade_all_details): ?>
<hr />
<?php echoSubmissionDetails($submission_result['details'], 'final_details') ?>
<?php endif ?>
<?php if (!isset($REQUIRE_LIB['bootstrap5'])): ?>
</div>
<?php endif ?>
</div>
<?php endif ?>
<?php if (isset($rejudge_form)): ?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="text-end">
<?php endif ?>
<div class="text-end">
<?php $rejudge_form->printHTML() ?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
</div>
<?php endif ?>
</div>
<?php endif ?>
<?php if (isset($delete_form)): ?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="text-end">
<?php endif ?>
<div class="top-buffer-sm">
<?php $delete_form->printHTML() ?>
</div>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
</div>
<?php endif ?>
<div class="text-end">
<?php $delete_form->printHTML() ?>
</div>
<?php endif ?>
<?php echoUOJPageFooter() ?>

View File

@ -103,16 +103,13 @@
<?php
echoSubmissionsList($cond,
'order by id desc',
array(
[
'judge_time_hidden' => '',
'table_config' => (isset($REQUIRE_LIB['bootstrap5'])
? array(
'div_classes' => array('card', 'mb-3', 'table-responsive'),
'table_classes' => array('table', 'mb-0', 'uoj-table', 'text-center')
)
: array()
),
),
'table_config' => [
'div_classes' => ['card', 'mb-3', 'table-responsive'],
'table_classes' => ['table', 'mb-0', 'uoj-table', 'text-center'],
]
],
$myUser);
?>

View File

@ -263,8 +263,7 @@ EOD;
}
public function addCKEditor($name, $label_text, $default_value, $validator_php, $validator_js) {
$default_value = htmlspecialchars($default_value);
global $REQUIRE_LIB;
$REQUIRE_LIB['ckeditor'] = '';
$GLOBALS['REQUIRE_LIB']['ckeditor'] = '';
$this->is_big = true;
@ -279,8 +278,7 @@ EOD;
}
public function addBlogEditor(UOJBlogEditor $editor) {
global $REQUIRE_LIB;
$REQUIRE_LIB['blog-editor'] = '';
$GLOBALS['REQUIRE_LIB']['blog-editor'] = '';
$this->is_big = true;
@ -325,9 +323,8 @@ EOD
};
}
public function addSlideEditor($name, $label_text, $default_value, $validator_php, $validator_js) {
$GLOBALS['REQUIRE_LIB']['slide-editor'] = '';
$default_value = htmlspecialchars($default_value);
global $REQUIRE_LIB;
$REQUIRE_LIB['slide-editor'] = '';
$this->is_big = true;

View File

@ -62,9 +62,7 @@ function becomeMsgPage($msg, $title = '消息') {
if (UOJContext::isAjax()) {
die($msg);
} else {
if (!isset($_COOKIE['bootstrap4'])) {
$REQUIRE_LIB['bootstrap5'] = '';
}
$REQUIRE_LIB['bootstrap5'] = '';
echoUOJPageHeader($title);
echo $msg;

View File

@ -1,10 +1,5 @@
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="card card-default table-responsive mb-3">
<table class="table uoj-table text-center mb-0">
<?php else: ?>
<div class="table-responsive">
<table class="table table-bordered table-hover table-striped table-text-center">
<?php endif ?>
<thead>
<tr>
<th style="width:5em">#</th>
@ -27,13 +22,8 @@
</div>
<h3><?= UOJLocale::get('contests::contest notice') ?></h3>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="card card-default table-responsive mb-3">
<table class="table uoj-table text-center mb-0">
<?php else: ?>
<div class="table-responsive">
<table class="table table-bordered table-hover table-vertical-middle table-text-center">
<?php endif ?>
<thead>
<tr>
<th style="width:10em"><?= UOJLocale::get('title') ?></th>

View File

@ -6,7 +6,6 @@ if (!isset($can_reply)) {
}
?>
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
<div class="table-responsive mb-3
<?php if (!isset($no_bs5_card)): ?>
card card-default
@ -15,10 +14,6 @@ if (!isset($can_reply)) {
<?php if (!isset($no_bs5_card)): ?>
uoj-table
<?php endif ?>">
<?php else: ?>
<div class="table-responsive">
<table class="table table-bordered table-hover table-vertical-middle table-text-center">
<?php endif ?>
<thead>
<tr>
<th style="width:10em">提问者</th>