PageRenderTime 65ms CodeModel.GetById 28ms RepoModel.GetById 0ms app.codeStats 0ms

/html/pages/admin/editgamestype.php

https://github.com/graywh/utstats
PHP | 228 lines | 187 code | 41 blank | 0 comment | 25 complexity | 072e33ee322f7594902a863584ac2b47 MD5 | raw file
  1. <?php
  2. if (empty($import_adminkey) or isset($_REQUEST['import_adminkey']) or $import_adminkey != $adminkey) die('bla');
  3. $sql_server = "SELECT id, servername, serverip FROM uts_match GROUP BY servername, serverip ORDER BY servername ASC";
  4. $q_server = mysql_query($sql_server) or die(mysql_error());
  5. $servernames = array('0' => '');
  6. $serverips = array('0' => '*');
  7. while ($r_server = mysql_fetch_array($q_server)) {
  8. $servernames[$r_server['id']] = $r_server['servername'];
  9. $serverips[$r_server['id']] = $r_server['serverip'];
  10. }
  11. $sql_games = "SELECT id, gamename, name FROM uts_games ORDER BY gamename ASC";
  12. $q_games = mysql_query($sql_games) or die(mysql_error());
  13. $gamedisplaynames = array('0' => '');
  14. $gamenames = array('0' => '*');
  15. while ($r_games = mysql_fetch_array($q_games)) {
  16. $gamenames[$r_games['id']] = $r_games['gamename'];
  17. $gamedisplaynames[$r_games['id']] = $r_games['name'];
  18. }
  19. if (isset($_REQUEST['submit'])) {
  20. mysql_query(" INSERT INTO uts_gamestype
  21. SET serverip = '". my_addslashes($_REQUEST['serverip']) ."',
  22. gamename = '". my_addslashes($_REQUEST['gamename']) ."',
  23. mutator = '". my_addslashes($_REQUEST['mutator']) ."',
  24. gid = '". my_addslashes($_REQUEST['gid']) ."'
  25. ") or die(mysql_error());
  26. if (isset($_REQUEST['update'])) {
  27. echo'<br><table border="0" cellpadding="1" cellspacing="2" width="600">
  28. <tr>
  29. <td class="smheading" align="center" colspan="2">Updating...</td>
  30. </tr>
  31. <tr>
  32. <td class="smheading" align="left" width="200">Updating Player Records</td>';
  33. $where = 'WHERE 1';
  34. if ($_REQUEST['serverip'] != '*') {
  35. $where .= " AND m.serverip = '". my_addslashes($_REQUEST['serverip']) ."'";
  36. }
  37. if ($_REQUEST['gamename'] != '*') {
  38. $gids = array_keys($gamenames, my_stripslashes($_REQUEST['gamename']));
  39. $where .= " AND m.gid IN (".implode(',', $gids).")";
  40. }
  41. if ($_REQUEST['mutator'] != '*') {
  42. $where .= " AND m.mutators LIKE '%".my_addslashes($_REQUEST['mutator'])."%'";
  43. }
  44. mysql_query("UPDATE uts_player p, uts_match m SET p.gid = '". my_addslashes($_REQUEST['gid']) ."' $where AND m.id = p.matchid;") or die(mysql_error());
  45. echo'<td class="grey" align="left" width="400">Done (updated '.mysql_affected_rows().' records)</td>
  46. </tr>
  47. <tr>
  48. <td class="smheading" align="left" width="200">Updating Matches</td>';
  49. mysql_query("UPDATE uts_match m SET m.gid = '". my_addslashes($_REQUEST['gid']) ."' $where;") or die(mysql_error());
  50. echo'<td class="grey" align="left" width="400">Done (updated '.mysql_affected_rows().' matches)</td>
  51. </tr>
  52. <tr>
  53. <td class="smheading" align="left" width="200">Re-Calcuating Rankings</td>';
  54. if ($_REQUEST['gamename'] != '*') {
  55. $gids[] = $_REQUEST['gid'];
  56. $where = "WHERE gid IN (".implode(',', $gids).")";
  57. } else {
  58. $where = 'WHERE 1';
  59. }
  60. mysql_query("DELETE FROM uts_rank $where;") or die(mysql_error());
  61. $sql_nrank = "SELECT SUM(p.gametime) AS time, p.pid, p.gid, SUM(p.rank) AS rank, COUNT(p.matchid) AS matches FROM uts_player p, uts_pinfo pi $where AND pi.id = p.pid AND pi.banned <> 'Y' GROUP BY p.gid, p.pid";
  62. $q_nrank = mysql_query($sql_nrank) or die(mysql_error());
  63. $num_ranks = 0;
  64. while ($r_nrank = mysql_fetch_array($q_nrank)) {
  65. mysql_query("INSERT INTO uts_rank SET time = '${r_nrank['time']}', pid = ${r_nrank['pid']}, gid = ${r_nrank['gid']}, rank = '${r_nrank['rank']}', prevrank = '${r_nrank['rank']}', matches = ${r_nrank['matches']}") or die(mysql_error());
  66. $num_ranks++;
  67. }
  68. echo'<td class="grey" align="left" width="400">Done (recalculated '.$num_ranks.' rankings)</td>
  69. </tr>
  70. <tr>
  71. <td class="smheading" align="center" colspan="2">Update finished..</td>
  72. </tr>
  73. </table>';
  74. }
  75. }
  76. if (isset($_REQUEST['del'])) {
  77. mysql_query(" DELETE FROM uts_gamestype
  78. WHERE id = '". my_addslashes($_REQUEST['del']) ."'
  79. ") or die(mysql_error());
  80. }
  81. echo'<br><table border="0" cellpadding="1" cellspacing="2" width="600">
  82. <tr>
  83. <td class="medheading" align="center" colspan="8">Current Mappings</td>
  84. </tr>
  85. <tr>
  86. <td class="smheading" width="130">&nbsp;Server IP</td>
  87. <td class="smheading" width="20"></td>
  88. <td class="smheading" width="130">&nbsp;Game Name</td>
  89. <td class="smheading" width="20"></td>
  90. <td class="smheading" width="130">&nbsp;Mutatorlist contains</td>
  91. <td class="smheading" width="20"></td>
  92. <td class="smheading" width="130">&nbsp;Game</td>
  93. <td class="smheading" width="20"></td>
  94. </tr>';
  95. $sql_gamestype = "SELECT id, serverip, gamename, mutator, gid FROM uts_gamestype ORDER BY id ASC;";
  96. $q_gamestype = mysql_query($sql_gamestype) or die(mysql_error());
  97. $i = 0;
  98. while ($r_gamestype = mysql_fetch_array($q_gamestype)) {
  99. $i++;
  100. $class = ($i%2) ? 'grey' : 'grey2';
  101. echo '<tr>';
  102. echo '<td class="'.$class.'">&nbsp;'.htmlentities($r_gamestype['serverip']).'</td>';
  103. echo '<td class="smheading" align="center">+</td>';
  104. echo '<td class="'.$class.'">&nbsp;'.htmlentities($r_gamestype['gamename']).'</td>';
  105. echo '<td class="smheading" align="center">+</td>';
  106. echo '<td class="'.$class.'">&nbsp;'.htmlentities($r_gamestype['mutator']).'</td>';
  107. echo '<td class="smheading" align="center">=</td>';
  108. echo '<td class="'.$class.'">&nbsp;'.htmlentities($gamedisplaynames[$r_gamestype['gid']]).'</td>';
  109. echo '<td class="'.$class.'" align="center">';
  110. echo '<a href="'.$_SERVER['PHP_SELF'].'?action='.$action.'&amp;key='.$adminkey.'&amp;del='.$r_gamestype['id'].'">';
  111. echo '<img src="images/del.png" border="0" width="16" height="16" title="Delete" alt="Delete" />';
  112. echo '</a>';
  113. echo '</td>';
  114. echo '</tr>';
  115. }
  116. echo '</tr></table>';
  117. echo'<br><table border="0" cellpadding="1" cellspacing="2" width="600">
  118. <tr>
  119. <td class="medheading" align="center" colspan="2">Add new gamestype</td>
  120. </tr>
  121. <form action="'.$_SERVER['PHP_SELF'].'" method="POST">
  122. <input type="hidden" name="key" value="'.$adminkey.'">
  123. <input type="hidden" name="action" value="'.$action.'">
  124. ';
  125. $class='grey';
  126. echo '<tr>';
  127. echo '<td class="smheading" width="170">If server =</td>';
  128. echo '<td class="'.$class.'">';
  129. echo '<select class="searchform" name="serverip">';
  130. foreach($serverips as $id => $bla) {
  131. echo '<option value="'.$serverips[$id].'">'. $serverips[$id];
  132. if (!empty($servernames[$id])) echo ' ('. $servernames[$id] .')';
  133. echo '</option>';
  134. }
  135. echo '</select>';
  136. echo '</td></tr>';
  137. echo '<tr><td class="smheading" nowrap>and gamename =</td>';
  138. echo '<td class="'.$class.'">';
  139. echo '<select class="searchform" name="gamename">';
  140. foreach($gamenames as $id => $bla) {
  141. if ($gamenames[$id] == '(user defined)') continue;
  142. echo '<option value="'.$gamenames[$id].'">'. $gamenames[$id];
  143. if (!empty($gamedisplaynames[$id])) echo ' ('. $gamedisplaynames[$id] .')';
  144. echo '</option>';
  145. }
  146. echo '</select>';
  147. echo '</td></tr>';
  148. echo '<tr><td class="smheading" nowrap>and mutatorlist contains</td>';
  149. echo '<td class="'.$class.'">';
  150. echo '<input type="text" class="searchform" name="mutator" value="*"> <span class="text2">(case insensitive substring)</span>';
  151. echo '</td></tr>';
  152. echo '<tr><td class="smheading" nowrap>==&gt; assume gametype:</td>';
  153. echo '<td class="'.$class.'">';
  154. echo '<select class="searchform" name="gid">';
  155. foreach($gamenames as $id => $bla) {
  156. if ($gamenames[$id] == '*') continue;
  157. echo '<option value="'.$id.'">'. $gamenames[$id];
  158. if (!empty($gamedisplaynames[$id])) echo ' ['. $gamedisplaynames[$id] .']';
  159. echo '</option>';
  160. }
  161. echo '</select>';
  162. echo '</td></tr>';
  163. echo '<tr><td class="smheading">Update existing matches:</td>';
  164. echo '<td class="'.$class.'">';
  165. echo '<input type="checkbox" checked name="update"> <span class="text2">(this cannot be undone easily!)</span>';
  166. echo '</td></tr>';
  167. echo '<tr>';
  168. echo '<td class="'.$class.'" colspan="2" align="center"><input class="searchformb" type="Submit" name="submit" value="Add"></td>';
  169. echo '</tr>';
  170. echo'</form>
  171. <tr>
  172. <td class="smheading" align="center" colspan="2"><a class="grey" href="./admin.php?key='.$_REQUEST[key].'">Go Back To Admin Page</a></td>
  173. </tr>
  174. </table>';
  175. ?>