rp.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. requirePHPLib('form');
  3. requirePHPLib('judger');
  4. $REQUIRE_LIB['mathjax'] = '';
  5. $REQUIRE_LIB['hljs'] = '';
  6. $pid = $_GET['lgpid'];
  7. $rp = queryRemoteProblemFull($pid);
  8. if ($rp == null)
  9. become404Page();
  10. function handleUpload($zip_file_name, $content, $tot_size) {
  11. global $rp, $myUser;
  12. $content['config'][] = array('problem_id', 260328);
  13. $content['config'][] = array('rpid', $rp['pid']);
  14. $esc_content = DB::escape(json_encode($content));
  15. $esc_language = DB::escape('Remote judger');
  16. $result = array();
  17. $result['status'] = 'Waiting remote';
  18. $result_json = json_encode($result);
  19. DB::insert("insert into submissions (problem_id, submit_time, submitter, content, language, tot_size, status, result, is_hidden) values (260328, now(), '${myUser['username']}', '$esc_content', '$esc_language', $tot_size, '${result['status']}', '$result_json', false)");
  20. }
  21. # vfk 把所有的 Available 拼成了 Avaiable。我无语,懒得改了。
  22. $submission_requirement = json_decode('[{"name":"answer","type":"source code","file_name":"answer.code", "languages":["C++"]}]', true);
  23. $answer_form = newSubmissionForm('answer', $submission_requirement, 'uojRandAvaiableSubmissionFileName', 'handleUpload');
  24. $answer_form->succ_href = '/submissions';
  25. $answer_form->runAtServer();
  26. ?>
  27. <?php echoUOJPageHeader(HTML::stripTags($rp['title']) . ' - ' . UOJLocale::get('problems::problem')) ?>
  28. <div class="row d-flex justify-content-center">
  29. <span class="badge badge-secondary mr-1">时间限制:<?=$time_limit!=null?"$time_limit s":"N/A"?></span>
  30. <span class="badge badge-secondary mr-1">空间限制:<?=$memory_limit!=null?"$memory_limit MB":"N/A"?></span>
  31. </div>
  32. <h1 class="page-header text-center"><?= $rp['title'] ?></h1>
  33. <ul class="nav nav-tabs" role="tablist">
  34. <li class="nav-item"><a class="nav-link active" href="#tab-statement" role="tab" data-toggle="tab"><span class="glyphicon glyphicon-book"></span> <?= UOJLocale::get('problems::statement') ?></a></li>
  35. <li class="nav-item"><a class="nav-link" href="#tab-submit-answer" role="tab" data-toggle="tab"><span class="glyphicon glyphicon-upload"></span> <?= UOJLocale::get('problems::submit') ?></a></li>
  36. </ul>
  37. <div class="tab-content">
  38. <div class="tab-pane active" id="tab-statement">
  39. <article class="top-buffer-md"><?= $rp['statement'] ?></article>
  40. </div>
  41. <div class="tab-pane" id="tab-submit-answer">
  42. <div class="top-buffer-sm"></div>
  43. <?php
  44. if ($myUser['luogu_uid'] != '' && $myUser['luogu_clientid'] != '')
  45. echo $answer_form->printHTML();
  46. else
  47. echo '你需要先在 勋章管理 -> Luogu 账号管理 中绑定自己的账号';
  48. ?>
  49. </div>
  50. </div>
  51. <?php echoUOJPageFooter() ?>