Oppaitime's version of Gazelle
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.php 6.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <?
  2. enforce_login();
  3. if (!defined('LOG_ENTRIES_PER_PAGE')) {
  4. define('LOG_ENTRIES_PER_PAGE', 100);
  5. }
  6. View::show_header("Site log");
  7. include(SERVER_ROOT.'/sections/log/sphinx.php');
  8. ?>
  9. <div class="thin">
  10. <div class="header">
  11. <h2>Site log</h2>
  12. </div>
  13. <div class="box pad">
  14. <form class="search_form" name="log" action="" method="get">
  15. <table cellpadding="6" cellspacing="1" border="0" class="layout" width="100%">
  16. <tr>
  17. <td class="label"><strong>Search for:</strong></td>
  18. <td>
  19. <input type="search" name="search" size="60"<?=(!empty($_GET['search']) ? ' value="'.display_str($_GET['search']).'"' : '')?> />
  20. &nbsp;
  21. <input type="submit" value="Search log" />
  22. </td>
  23. </tr>
  24. </table>
  25. </form>
  26. </div>
  27. <? if ($TotalMatches > LOG_ENTRIES_PER_PAGE) { ?>
  28. <div class="linkbox">
  29. <?
  30. $Pages = Format::get_pages($Page, $TotalMatches, LOG_ENTRIES_PER_PAGE, 9);
  31. echo $Pages;?>
  32. </div>
  33. <? } ?>
  34. <div class="box">
  35. <table cellpadding="6" cellspacing="1" border="0" class="log_table" id="log_table" width="100%">
  36. <tr class="colhead">
  37. <td style="width: 180px;"><strong>Time</strong></td>
  38. <td><strong>Message</strong></td>
  39. </tr>
  40. <? if ($QueryStatus) { ?>
  41. <tr class="nobr"><td colspan="2">Search request failed (<?=$QueryError?>).</td></tr>
  42. <? } elseif (!$DB->has_results()) { ?>
  43. <tr class="nobr"><td colspan="2">Nothing found!</td></tr>
  44. <?
  45. }
  46. $Usernames = array();
  47. while (list($ID, $Message, $LogTime) = $DB->next_record()) {
  48. $MessageParts = explode(' ', $Message);
  49. $Message = '';
  50. $Color = $Colon = false;
  51. for ($i = 0, $PartCount = sizeof($MessageParts); $i < $PartCount; $i++) {
  52. if (strpos($MessageParts[$i], 'https://'.SITE_DOMAIN) === 0) {
  53. $Offset = strlen('https://'.SITE_DOMAIN.'/');
  54. $MessageParts[$i] = '<a href="'.substr($MessageParts[$i], $Offset).'">'.substr($MessageParts[$i], $Offset).'</a>';
  55. }
  56. switch ($MessageParts[$i]) {
  57. case 'Torrent':
  58. case 'torrent':
  59. $TorrentID = $MessageParts[$i + 1];
  60. if (is_numeric($TorrentID)) {
  61. $Message = $Message.' '.$MessageParts[$i]." <a href=\"torrents.php?torrentid=$TorrentID\">$TorrentID</a>";
  62. $i++;
  63. } else {
  64. $Message = $Message.' '.$MessageParts[$i];
  65. }
  66. break;
  67. case 'Request':
  68. $RequestID = $MessageParts[$i + 1];
  69. if (is_numeric($RequestID)) {
  70. $Message = $Message.' '.$MessageParts[$i]." <a href=\"requests.php?action=view&amp;id=$RequestID\">$RequestID</a>";
  71. $i++;
  72. } else {
  73. $Message = $Message.' '.$MessageParts[$i];
  74. }
  75. break;
  76. case 'Artist':
  77. case 'artist':
  78. $ArtistID = $MessageParts[$i + 1];
  79. if (is_numeric($ArtistID)) {
  80. $Message = $Message.' '.$MessageParts[$i]." <a href=\"artist.php?id=$ArtistID\">$ArtistID</a>";
  81. $i++;
  82. } else {
  83. $Message = $Message.' '.$MessageParts[$i];
  84. }
  85. break;
  86. case 'group':
  87. case 'Group':
  88. $GroupID = $MessageParts[$i + 1];
  89. if (is_numeric($GroupID)) {
  90. $Message = $Message.' '.$MessageParts[$i]." <a href=\"torrents.php?id=$GroupID\">$GroupID</a>";
  91. } else {
  92. $Message = $Message.' '.$MessageParts[$i];
  93. }
  94. $i++;
  95. break;
  96. case 'by':
  97. $UserID = 0;
  98. $User = '';
  99. $URL = '';
  100. if ($MessageParts[$i + 1] == 'user') {
  101. $i++;
  102. if (is_numeric($MessageParts[$i + 1])) {
  103. $UserID = $MessageParts[++$i];
  104. }
  105. $URL = "user $UserID (<a href=\"user.php?id=$UserID\">".substr($MessageParts[++$i], 1, -1).'</a>)';
  106. } elseif (in_array($MessageParts[$i - 1], array('deleted', 'uploaded', 'edited', 'created', 'recovered'))) {
  107. $User = $MessageParts[++$i];
  108. if (substr($User, -1) == ':') {
  109. $User = substr($User, 0, -1);
  110. $Colon = true;
  111. }
  112. if (!isset($Usernames[$User])) {
  113. $DB->query("
  114. SELECT ID
  115. FROM users_main
  116. WHERE Username = _utf8 '" . db_string($User) . "'
  117. COLLATE utf8_bin");
  118. list($UserID) = $DB->next_record();
  119. $Usernames[$User] = $UserID ? $UserID : '';
  120. } else {
  121. $UserID = $Usernames[$User];
  122. }
  123. $DB->set_query_id($Log);
  124. $URL = $Usernames[$User] ? "<a href=\"user.php?id=$UserID\">$User</a>".($Colon ? ':' : '') : $User;
  125. }
  126. $Message = "$Message by $URL";
  127. break;
  128. case 'uploaded':
  129. if ($Color === false) {
  130. $Color = 'green';
  131. }
  132. $Message = $Message.' '.$MessageParts[$i];
  133. break;
  134. case 'deleted':
  135. if ($Color === false || $Color === 'green') {
  136. $Color = 'red';
  137. }
  138. $Message = $Message.' '.$MessageParts[$i];
  139. break;
  140. case 'edited':
  141. if ($Color === false) {
  142. $Color = 'blue';
  143. }
  144. $Message = $Message.' '.$MessageParts[$i];
  145. break;
  146. case 'un-filled':
  147. if ($Color === false) {
  148. $Color = '';
  149. }
  150. $Message = $Message.' '.$MessageParts[$i];
  151. break;
  152. case 'marked':
  153. if ($i == 1) {
  154. $User = $MessageParts[$i - 1];
  155. if (!isset($Usernames[$User])) {
  156. $DB->query("
  157. SELECT ID
  158. FROM users_main
  159. WHERE Username = _utf8 '" . db_string($User) . "'
  160. COLLATE utf8_bin");
  161. list($UserID) = $DB->next_record();
  162. $Usernames[$User] = $UserID ? $UserID : '';
  163. $DB->set_query_id($Log);
  164. } else {
  165. $UserID = $Usernames[$User];
  166. }
  167. $URL = $Usernames[$User] ? "<a href=\"user.php?id=$UserID\">$User</a>" : $User;
  168. $Message = $URL." ".$MessageParts[$i];
  169. } else {
  170. $Message = $Message.' '.$MessageParts[$i];
  171. }
  172. break;
  173. case 'Collage':
  174. $CollageID = $MessageParts[$i + 1];
  175. if (is_numeric($CollageID)) {
  176. $Message = $Message.' '.$MessageParts[$i]." <a href=\"collages.php?id=$CollageID\">$CollageID</a>";
  177. $i++;
  178. } else {
  179. $Message = $Message.' '.$MessageParts[$i];
  180. }
  181. break;
  182. default:
  183. $Message = $Message.' '.$MessageParts[$i];
  184. }
  185. }
  186. ?>
  187. <tr class="row" id="log_<?=$ID?>">
  188. <td class="nobr">
  189. <?=time_diff($LogTime)?>
  190. </td>
  191. <td>
  192. <span<? if ($Color) { ?> style="color: <?=$Color?>;"<? } ?>><?=$Message?></span>
  193. </td>
  194. </tr>
  195. <?
  196. }
  197. ?>
  198. </table>
  199. </div>
  200. <? if (isset($Pages)) { ?>
  201. <div class="linkbox">
  202. <?=$Pages?>
  203. </div>
  204. <? } ?>
  205. </div>
  206. <?
  207. View::show_footer(); ?>