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.

contest.php 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?
  2. if (!($ContestSettings = $Cache->get_value("contest_settings"))) {
  3. $DB->query("
  4. SELECT
  5. Value,
  6. Comment
  7. FROM site_options
  8. WHERE
  9. Name='ContestRules'
  10. OR Name='ContestTimes'
  11. OR Name='ContestRewards'");
  12. if ($DB->has_results()) {
  13. list($QueryPart, $Rules) = $DB->next_record();
  14. list($StartTime, $EndTime) = $DB->next_record();
  15. list($Amount, $Currency) = $DB->next_record();
  16. }
  17. $ContestSettings = array(
  18. 'query' => html_entity_decode($QueryPart),
  19. 'rules' => $Rules,
  20. 'start' => $StartTime,
  21. 'end' => $EndTime,
  22. 'reward' => ($Amount.' '.$Currency.'/torrent')
  23. );
  24. $Cache->cache_value('contest_settings', $ContestSettings);
  25. }
  26. if (!($Scores = $Cache->get_value("contest_scores"))) {
  27. $DB->query("
  28. SELECT
  29. u.Username,
  30. u.ID,
  31. COUNT(*) AS Uploads
  32. FROM torrents AS t
  33. LEFT JOIN torrents_group AS tg ON t.groupID=tg.ID
  34. LEFT JOIN users_main AS u ON t.UserID=u.ID
  35. WHERE
  36. $ContestSettings[query]
  37. AND UNIX_TIMESTAMP(t.Time) > $ContestSettings[start]
  38. AND UNIX_TIMESTAMP(t.Time) < $ContestSettings[end]
  39. GROUP BY UserID
  40. ORDER BY Uploads DESC
  41. LIMIT 50");
  42. $Scores = $DB->to_array();
  43. $Cache->cache_value('contest_scores', $Scores);
  44. }
  45. View::show_header('Contest');
  46. if (time() < $ContestSettings['start']) {
  47. print '<h2>Future Contest (Starts in '.time_diff($ContestSettings['start'],2,false).')</h2>';
  48. } else if (time() > $ContestSettings['end']) {
  49. print '<h2>Finished Contest</h2>';
  50. } else {
  51. print '<h2>Ongoing Contest! ('.time_diff($ContestSettings['end'],2,false).' remaining)</h2>';
  52. }
  53. ?>
  54. <div class="thin flex">
  55. <div class="box pad grow">
  56. <? if ($Scores) { ?>
  57. <h2 id="general">Scoreboard</h2>
  58. <table width="100%" class="contest_scoreboard">
  59. <tr class="colhead">
  60. <td>Place</td>
  61. <td>User</td>
  62. <td>Score</td>
  63. </tr>
  64. <? foreach ($Scores as $Place => $Score) { ?>
  65. <tr class="row">
  66. <td><?=($Place+1)?></td>
  67. <td><a href="/user.php?id=<?=$Score['ID']?>"><?=$Score['Username']?></a></td>
  68. <td><?=$Score['Uploads']?></td>
  69. </tr>
  70. <? } ?>
  71. </table>
  72. <? } else { ?>
  73. <h2>No Scores Yet</h2>
  74. <? } ?>
  75. </div>
  76. <div class="shrink flex" style="margin-left: 1em; flex-direction: column;">
  77. <div class="box pad">
  78. <h2>Qualifications</h2>
  79. <ul>
  80. <?
  81. print '<li>'.str_replace('\n', '</li><li>', $ContestSettings['rules']).'</li>'
  82. ?>
  83. </ul>
  84. </div>
  85. <div class="box pad">
  86. <h2>Rewards</h2>
  87. <ul>
  88. <li><?=$ContestSettings['reward']?></li>
  89. </ul>
  90. </div>
  91. </div>
  92. </div>
  93. <? View::show_footer(); ?>