| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?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['hljs'] = "";
- ?>
- <?php echoUOJPageHeader(UOJLocale::get('problems::hack').' #'.$hack['id']) ?>
- <?php echoHackListOnlyOne($hack, array(), $myUser) ?>
- <?php if ($should_show_all_details): ?>
- <div class="card border-info shadow my-4">
- <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() ?>
|