mirror of
https://github.com/renbaoshuo/S2OJ.git
synced 2024-12-27 17:51:53 +00:00
c49b69aa86
Let's welcome brand new look made by Bootstrap 4! Not only website but also our logo is being flat now. The new logo uses blue as main color, to be different from original. For us, it also shows the project has up to a new stage. We hope that the project will get better and better. BREAKING CHANGE: The path for users to place their images is renamed. Logos are saved as new names too. Users should move "pictures" to "images". Any modifications should suit the Bootstrap 4's standard.
87 lines
2.9 KiB
PHP
87 lines
2.9 KiB
PHP
<?php
|
|
requirePHPLib('form');
|
|
|
|
if (!validateUInt($_GET['id']) || !($hack = queryHack($_GET['id']))) {
|
|
become404Page();
|
|
}
|
|
$submission = querySubmission($hack['submission_id']);
|
|
$problem = queryProblemBrief($submission['problem_id']);
|
|
$problem_extra_config = getProblemExtraConfig($problem);
|
|
|
|
if ($submission['contest_id']) {
|
|
$contest = queryContest($submission['contest_id']);
|
|
genMoreContestInfo($contest);
|
|
} else {
|
|
$contest = null;
|
|
}
|
|
|
|
if (!isHackVisibleToUser($hack, $problem, $myUser)) {
|
|
become403Page();
|
|
}
|
|
|
|
if (isSuperUser($myUser)) {
|
|
$delete_form = new UOJForm('delete');
|
|
$delete_form->handle = function() {
|
|
global $hack;
|
|
DB::query("delete from hacks where id = {$hack['id']}");
|
|
};
|
|
$delete_form->submit_button_config['class_str'] = 'btn btn-danger';
|
|
$delete_form->submit_button_config['text'] = '删除此Hack';
|
|
$delete_form->submit_button_config['align'] = 'right';
|
|
$delete_form->submit_button_config['smart_confirm'] = '';
|
|
$delete_form->succ_href = "/hacks";
|
|
$delete_form->runAtServer();
|
|
}
|
|
|
|
$should_show_content = hasViewPermission($problem_extra_config['view_content_type'], $myUser, $problem, $submission);
|
|
$should_show_all_details = hasViewPermission($problem_extra_config['view_all_details_type'], $myUser, $problem, $submission);
|
|
$should_show_details = hasViewPermission($problem_extra_config['view_details_type'], $myUser, $problem, $submission);
|
|
$should_show_details_to_me = isSuperUser($myUser);
|
|
if ($hack['success'] === null) {
|
|
$should_show_all_details = false;
|
|
}
|
|
if (!isSubmissionFullVisibleToUser($submission, $contest, $problem, $myUser)
|
|
|| !isHackFullVisibleToUser($hack, $contest, $problem, $myUser)) {
|
|
$should_show_content = $should_show_all_details = false;
|
|
}
|
|
|
|
if ($should_show_all_details) {
|
|
$styler = new HackDetailsStyler();
|
|
if (!$should_show_details) {
|
|
$styler->fade_all_details = true;
|
|
$styler->show_small_tip = false;
|
|
}
|
|
}
|
|
?>
|
|
<?php
|
|
$REQUIRE_LIB['shjs'] = "";
|
|
?>
|
|
<?php echoUOJPageHeader(UOJLocale::get('problems::hack').' #'.$hack['id']) ?>
|
|
|
|
<?php echoHackListOnlyOne($hack, array(), $myUser) ?>
|
|
<?php if ($should_show_all_details): ?>
|
|
<div class="card border-info">
|
|
<div class="card-header bg-info">
|
|
<h4 class="card-title"><?= UOJLocale::get('details') ?></h4>
|
|
</div>
|
|
<div class="card-body">
|
|
<?php echoJudgementDetails($hack['details'], $styler, 'details') ?>
|
|
<?php if ($should_show_details_to_me): ?>
|
|
<?php if ($styler->fade_all_details): ?>
|
|
<hr />
|
|
<?php echoHackDetails($hack['details'], 'final_details') ?>
|
|
<?php endif ?>
|
|
<?php endif ?>
|
|
</div>
|
|
</div>
|
|
<?php endif ?>
|
|
<?php echoSubmissionsListOnlyOne($submission, array(), $myUser) ?>
|
|
<?php if ($should_show_content): ?>
|
|
<?php echoSubmissionContent($submission, getProblemSubmissionRequirement($problem)) ?>
|
|
<?php endif ?>
|
|
|
|
<?php if (isset($delete_form)): ?>
|
|
<?php $delete_form->printHTML() ?>
|
|
<?php endif ?>
|
|
<?php echoUOJPageFooter() ?>
|