certs_manage.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <?php
  2. requirePHPLib('form');
  3. requirePHPLib('judger');
  4. if ($myUser == null) {
  5. become403Page();
  6. }
  7. $cur_tab = isset($_GET['tab']) ? $_GET['tab'] : 'my';
  8. $tabs_info = array(
  9. 'my' => array (
  10. 'name' => '我的勋章',
  11. 'url' => '/certs-manage/my'
  12. ),
  13. 'aboutme' => array (
  14. 'name' => '自定义页面',
  15. 'url' => '/certs-manage/aboutme'
  16. ),
  17. 'songs' => array (
  18. 'name' => '我要推歌',
  19. 'url' => '/certs-manage/songs'
  20. ),
  21. 'luogu' => array (
  22. 'name' => 'Luogu 账号管理',
  23. 'url' => '/certs-manage/luogu'
  24. )
  25. );
  26. if (!isset($tabs_info[$cur_tab])) {
  27. become404Page();
  28. }
  29. if ($_POST['certs'] != '') {
  30. $certs = DB::escape($_POST['certs']);
  31. $username = $myUser['username'];
  32. if (!in_array($certs, explode(',', $myUser['certslist'])))
  33. becomeMsgPage('<div>你好像没有这个勋章</div>');
  34. DB::update("update user_info set certs = \"$certs\" where username = \"$username\"");
  35. becomeMsgPage("<div><h4>成功切换!</h4></div>");
  36. }
  37. $aboutme_form = new UOJForm('aboutme_form');
  38. $aboutme_form->addInput('blogid', 'text', '博客 ID', '',
  39. function ($x) {
  40. if (!validateUInt($x)) return 'ID 不合法';
  41. if (!queryBlog($x)) return '博客不存在';
  42. return '';
  43. }, null);
  44. $aboutme_form->handle = function () {
  45. global $myUser;
  46. $id = $_POST['blogid'];
  47. DB::update("update user_info set aboutme_blogid = $id where username = '{$myUser['username']}'");
  48. };
  49. $aboutme_form->runAtServer();
  50. $luogu_form = new UOJForm('luogu_form');
  51. $luogu_form->addInput('luogu_uid', 'text', 'Luogu UID', '',
  52. function ($x) {
  53. if (!validateUInt($x))
  54. return '不是整数';
  55. return '';
  56. }, null);
  57. $luogu_form->addInput('luogu_clientid', 'text', '__client_id(在 Cookie 中)', '',
  58. function ($x) {
  59. return '';
  60. }, null);
  61. $luogu_form->handle = function () {
  62. global $myUser;
  63. $luid = DB::escape($_POST['luogu_uid']);
  64. $lcid = DB::escape($_POST['luogu_clientid']);
  65. $username = $myUser['username'];
  66. DB::update("update user_info set luogu_uid = '$luid', luogu_clientid = '$lcid' where username = '$username'");
  67. };
  68. $luogu_form->runAtServer();
  69. $song_form = new UOJForm('songs_form');
  70. $song_form->addInput('song_name', 'text', '歌名', '',
  71. function ($x) {
  72. if (strlen($x) > 200)
  73. return '歌名太长了';
  74. return '';
  75. }, null);
  76. $song_form->addInput('writer_name', 'text', '作者', '',
  77. function ($x) {
  78. if (strlen($x) > 200)
  79. return '作者名字太长了';
  80. return '';
  81. }, null);
  82. $song_form->addInput('album_name', 'text', '专辑', '',
  83. function ($x) {
  84. if (strlen($x) > 200)
  85. return '专辑名太长了';
  86. return '';
  87. }, null);
  88. $song_form->addInput('cover_url', 'text', '封面链接', '',
  89. function ($x) {
  90. if (strlen($x) > 256)
  91. return '封面链接过长';
  92. return '';
  93. }, null);
  94. $song_form->addInput('click_url', 'text', '歌曲链接', '',
  95. function ($x) {
  96. if (strlen($x) > 256)
  97. return '歌曲链接过长';
  98. return '';
  99. }, null);
  100. $song_form->handle = function () {
  101. global $myUser;
  102. $song_name = DB::escape(HTML::escape($_POST['song_name']));
  103. $writer_name = DB::escape(HTML::escape($_POST['writer_name']));
  104. $album_name = DB::escape(HTML::escape($_POST['album_name']));
  105. $cover_url = DB::escape(HTML::escape($_POST['cover_url']));
  106. $click_url = DB::escape(HTML::escape($_POST['click_url']));
  107. $username = $myUser['username'];
  108. DB::insert("insert into songs (name, writer, album, cover, click, user) values " .
  109. "('$song_name', '$writer_name', '$album_name', '$cover_url', '$click_url', '$username')");
  110. };
  111. $song_form->runAtServer();
  112. ?>
  113. <?php
  114. requireLib('hljs');
  115. requireLib('morris');
  116. ?>
  117. <?php echoUOJPageHeader('勋章管理') ?>
  118. <div class="row">
  119. <div class="col-sm-3">
  120. <?= HTML::tablist($tabs_info, $cur_tab, 'nav-pills flex-column') ?>
  121. </div>
  122. <div class="col-sm-9">
  123. <?php if ($cur_tab == 'my'): ?>
  124. <div>
  125. <h4>我的勋章</h4>
  126. <?php echoCertsList($myUser) ?>
  127. </div>
  128. <?php elseif ($cur_tab == 'aboutme'): ?>
  129. <div>
  130. <h4>设置自定义页面</h4>
  131. <?php $aboutme_form->printHTML(); ?>
  132. </div>
  133. <?php elseif ($cur_tab == 'songs'): ?>
  134. <div>
  135. <h4>我要推歌!</h4>
  136. <?php $song_form->printHTML(); ?>
  137. </div>
  138. <?php elseif ($cur_tab == 'luogu'): ?>
  139. <div>
  140. <h4>Luogu 账号管理</h4>
  141. <?php $luogu_form->printHTML(); ?>
  142. </div>
  143. <?php endif ?>
  144. </div>
  145. </div>
  146. <?php echoUOJPageFooter() ?>