certs_manage.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  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. $bg_form = new UOJForm('bg_form');
  38. $bg_form->addInput('bgurl', 'text', '背景地址 URL', '',
  39. function ($x) {
  40. return '';
  41. }, null);
  42. $bg_form->handle = function () {
  43. global $myUser;
  44. $url = DB::escape($_POST['bgurl']);
  45. DB::update("update user_info set bgurl = '$url' where username = '{$myUser['username']}'");
  46. };
  47. $bg_form->runAtServer();
  48. $aboutme_form = new UOJForm('aboutme_form');
  49. $aboutme_form->addInput('blogid', 'text', '博客 ID', '',
  50. function ($x) {
  51. if (!validateUInt($x)) return 'ID 不合法';
  52. if (!queryBlog($x)) return '博客不存在';
  53. return '';
  54. }, null);
  55. $aboutme_form->handle = function () {
  56. global $myUser;
  57. $id = $_POST['blogid'];
  58. DB::update("update user_info set aboutme_blogid = $id where username = '{$myUser['username']}'");
  59. };
  60. $aboutme_form->runAtServer();
  61. $luogu_form = new UOJForm('luogu_form');
  62. $luogu_form->addInput('luogu_uid', 'text', 'Luogu UID', '',
  63. function ($x) {
  64. if (!validateUInt($x))
  65. return '不是整数';
  66. return '';
  67. }, null);
  68. $luogu_form->addInput('luogu_clientid', 'text', '__client_id(在 Cookie 中)', '',
  69. function ($x) {
  70. return '';
  71. }, null);
  72. $luogu_form->handle = function () {
  73. global $myUser;
  74. $luid = DB::escape($_POST['luogu_uid']);
  75. $lcid = DB::escape($_POST['luogu_clientid']);
  76. $username = $myUser['username'];
  77. DB::update("update user_info set luogu_uid = '$luid', luogu_clientid = '$lcid' where username = '$username'");
  78. };
  79. $luogu_form->runAtServer();
  80. $song_form = new UOJForm('songs_form');
  81. $song_form->addInput('song_name', 'text', '歌名', '',
  82. function ($x) {
  83. if (strlen($x) > 200)
  84. return '歌名太长了';
  85. return '';
  86. }, null);
  87. $song_form->addInput('writer_name', 'text', '作者', '',
  88. function ($x) {
  89. if (strlen($x) > 200)
  90. return '作者名字太长了';
  91. return '';
  92. }, null);
  93. $song_form->addInput('album_name', 'text', '专辑', '',
  94. function ($x) {
  95. if (strlen($x) > 200)
  96. return '专辑名太长了';
  97. return '';
  98. }, null);
  99. $song_form->addInput('cover_url', 'text', '封面链接', '',
  100. function ($x) {
  101. if (strlen($x) > 256)
  102. return '封面链接过长';
  103. return '';
  104. }, null);
  105. $song_form->addInput('click_url', 'text', '歌曲链接', '',
  106. function ($x) {
  107. if (strlen($x) > 256)
  108. return '歌曲链接过长';
  109. return '';
  110. }, null);
  111. $song_form->handle = function () {
  112. global $myUser;
  113. $song_name = DB::escape(HTML::escape($_POST['song_name']));
  114. $writer_name = DB::escape(HTML::escape($_POST['writer_name']));
  115. $album_name = DB::escape(HTML::escape($_POST['album_name']));
  116. $cover_url = DB::escape(HTML::escape($_POST['cover_url']));
  117. $click_url = DB::escape(HTML::escape($_POST['click_url']));
  118. $username = $myUser['username'];
  119. DB::insert("insert into songs (name, writer, album, cover, click, user) values " .
  120. "('$song_name', '$writer_name', '$album_name', '$cover_url', '$click_url', '$username')");
  121. };
  122. $song_form->runAtServer();
  123. ?>
  124. <?php
  125. requireLib('hljs');
  126. requireLib('morris');
  127. ?>
  128. <?php echoUOJPageHeader('勋章管理') ?>
  129. <div class="row">
  130. <div class="col-sm-3">
  131. <?= HTML::tablist($tabs_info, $cur_tab, 'nav-pills flex-column') ?>
  132. </div>
  133. <div class="col-sm-9">
  134. <?php if ($cur_tab == 'my'): ?>
  135. <div>
  136. <h4>我的勋章</h4>
  137. <?php echoCertsList($myUser) ?>
  138. </div>
  139. <?php elseif ($cur_tab == 'aboutme'): ?>
  140. <div>
  141. <h4>设置自定义页面</h4>
  142. <?php $aboutme_form->printHTML(); ?>
  143. <h4>设置背景</h4>
  144. <?php $bg_form->printHTML(); ?>
  145. </div>
  146. <?php elseif ($cur_tab == 'songs'): ?>
  147. <div>
  148. <h4>我要推歌!</h4>
  149. <?php $song_form->printHTML(); ?>
  150. </div>
  151. <?php elseif ($cur_tab == 'luogu'): ?>
  152. <div>
  153. <h4>Luogu 账号管理</h4>
  154. <?php $luogu_form->printHTML(); ?>
  155. </div>
  156. <?php endif ?>
  157. </div>
  158. </div>
  159. <?php echoUOJPageFooter() ?>