mirror of
https://github.com/renbaoshuo/S2OJ.git
synced 2024-12-23 18:31:52 +00:00
84 lines
1.7 KiB
PHP
84 lines
1.7 KiB
PHP
<?php
|
|
if (!Auth::check()) {
|
|
redirectToLogin();
|
|
}
|
|
|
|
if (!isNormalUser($myUser)) {
|
|
become403Page();
|
|
}
|
|
|
|
requireLib('bootstrap5');
|
|
requirePHPLib('form');
|
|
|
|
if (!isSuperUser($myUser)) {
|
|
become403Page();
|
|
}
|
|
$time_form = new UOJForm('time');
|
|
$time_form->addVInput(
|
|
'name', 'text', '比赛标题', 'New Contest',
|
|
function($str) {
|
|
return '';
|
|
},
|
|
null
|
|
);
|
|
$time_form->addVInput(
|
|
'start_time', 'text', '开始时间', date("Y-m-d H:i:s"),
|
|
function($str, &$vdata) {
|
|
try {
|
|
$vdata['start_time'] = new DateTime($str);
|
|
} catch (Exception $e) {
|
|
return '无效时间格式';
|
|
}
|
|
return '';
|
|
},
|
|
null
|
|
);
|
|
$time_form->addVInput(
|
|
'last_min', 'text', '时长(单位:分钟)', 180,
|
|
function($str) {
|
|
return !validateUInt($str) ? '必须为一个整数' : '';
|
|
},
|
|
null
|
|
);
|
|
$time_form->handle = function(&$vdata) {
|
|
$start_time_str = $vdata['start_time']->format('Y-m-d H:i:s');
|
|
|
|
$purifier = HTML::purifier_inline();
|
|
|
|
$esc_name = $_POST['name'];
|
|
$esc_name = $purifier->purify($esc_name);
|
|
$esc_name = DB::escape($esc_name);
|
|
|
|
DB::query("insert into contests (name, start_time, last_min, status) values ('$esc_name', '$start_time_str', ${_POST['last_min']}, 'unfinished')");
|
|
};
|
|
$time_form->succ_href="/contests";
|
|
$time_form->runAtServer();
|
|
?>
|
|
<?php echoUOJPageHeader('添加比赛') ?>
|
|
|
|
<div class="row">
|
|
<div class="col-lg-9">
|
|
|
|
<div class="card card-default mb-2">
|
|
<div class="card-body">
|
|
|
|
<h1 class="h2 card-title">添加比赛</h1>
|
|
|
|
<div class="w-full" style="max-width: 400px">
|
|
<?php $time_form->printHTML(); ?>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<!-- right col -->
|
|
<aside class="col-lg-3 mt-3 mt-lg-0">
|
|
<?php uojIncludeView('sidebar', array()) ?>
|
|
</aside>
|
|
|
|
</div>
|
|
|
|
<?php echoUOJPageFooter() ?>
|