groups_manage.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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' => '/groups-manage/my'
  12. ),
  13. 'ctrls' => array(
  14. 'name' => '掌控组列表',
  15. 'url' => '/groups-manage/ctrls'
  16. ),
  17. 'belongs' => array(
  18. 'name' => '隶属组列表',
  19. 'url' => '/groups-manage/belongs'
  20. )
  21. );
  22. $new_group_form = new UOJForm('new-group');
  23. $new_group_form->addInput('groupname', 'text', '组名称', '',
  24. function ($name) {
  25. global $myUser;
  26. if ($myUser['childgroup'] != '')
  27. return '你已经创建过组,不能再创建';
  28. if (!validateUsername($name))
  29. return '组名不合法';
  30. if (substr($name, 0, 6) != 'group_')
  31. return '组名必须以 group_ 开头';
  32. $user = queryUser($name);
  33. if ($user) return '组已存在';
  34. return '';
  35. }, null);
  36. $new_group_form->addInput('nick', 'text', '组昵称', '',
  37. function ($nick) {
  38. return '';
  39. }, null);
  40. $new_group_form->handle = function() {
  41. global $myUser;
  42. $username = $myUser['username'];
  43. $name = $_POST['groupname'];
  44. $esc_nick = DB::escape($_POST['nick']);
  45. DB::update("update user_info set childgroup = '$name' where username = '$username'");
  46. DB::insert("insert into user_info (username, email, ac_num, ctrls, childgroup)
  47. values ('$name', '$esc_nick', 500, '$username', '$username')");
  48. attachUserToGroup($myUser, queryUser($name));
  49. };
  50. $new_group_form->runAtServer();
  51. if (!isset($tabs_info[$cur_tab])) {
  52. become404Page();
  53. }
  54. ?>
  55. <?php
  56. requireLib('hljs');
  57. requireLib('morris');
  58. ?>
  59. <?php echoUOJPageHeader('组管理') ?>
  60. <div class="row">
  61. <div class="col-sm-3">
  62. <?= HTML::tablist($tabs_info, $cur_tab, 'nav-pills flex-column') ?>
  63. </div>
  64. <div class="col-sm-9">
  65. <?php if ($cur_tab == 'my'): ?>
  66. <div>
  67. <h4>我的组</h4>
  68. <?php
  69. if ($myUser['childgroup'] == '') {
  70. echo '你尚未创建自己的组<br>';
  71. echo '创建一个?<br><b class="text-danger">你只能创建一个组,且名称不可改变(昵称可以修改)。</b>';
  72. $new_group_form->printHTML();
  73. }
  74. else {
  75. $grp = queryUser($myUser['childgroup']);
  76. $grpnick = $grp['email'];
  77. $grpname = $grp['username'];
  78. echo "<div class='row mt-2'>";
  79. echo "<div class='col-sm-6'><h4>$grpnick</h4></div>";
  80. echo "<div class='col-sm-6 text-right'><a href='/group-manage/$grpname' class='btn btn-info'>管理</a></div></div>";
  81. }
  82. ?>
  83. </div>
  84. <?php elseif ($cur_tab === 'ctrls'): ?>
  85. <div>
  86. <h4>掌控组列表</h4>
  87. <?php echoControlGroupList($myUser) ?>
  88. </div>
  89. <?php elseif ($cur_tab == 'belongs'): ?>
  90. <div>
  91. <h4>隶属组列表</h4>
  92. <?php echoBelongGroupList($myUser) ?>
  93. </div>
  94. <?php endif ?>
  95. </div>
  96. </div>
  97. <?php echoUOJPageFooter() ?>