BioTorrents.de’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.

donors.php 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. #declare(strict_types=1);
  3. View::show_header('Top 10 Donors');
  4. ?>
  5. <div>
  6. <div class="header">
  7. <h2>Top Donors</h2>
  8. <?php Top10View::render_linkbox("donors"); ?>
  9. </div>
  10. <?php
  11. $Limit = isset($_GET['limit']) ? intval($_GET['limit']) : 10;
  12. $Limit = in_array($Limit, array(10, 100, 250)) ? $Limit : 10;
  13. $IsMod = check_perms("users_mod");
  14. $DB->prepared_query("
  15. SELECT
  16. `UserID`,
  17. `TotalRank`,
  18. `Rank`,
  19. `SpecialRank`,
  20. `DonationTime`,
  21. `Hidden`
  22. FROM
  23. `users_donor_ranks`
  24. WHERE
  25. `TotalRank` > 0
  26. ORDER BY
  27. `TotalRank`
  28. DESC
  29. LIMIT
  30. $Limit
  31. ");
  32. $Results = $DB->to_array();
  33. generate_user_table('Top Donors', $Results, $Limit);
  34. echo '</div>';
  35. View::show_footer();
  36. // Generate a table based on data from most recent query to $DB
  37. function generate_user_table($Caption, $Results, $Limit)
  38. {
  39. global $Time, $IsMod; ?>
  40. <h3>Top <?="$Limit $Caption"; ?>
  41. <small class="top10_quantity_links">
  42. <?php
  43. switch ($Limit) {
  44. case 100: ?>
  45. &ndash; <a href="top10.php?type=donors" class="brackets">Top 10</a>
  46. &ndash; <span class="brackets">Top 100</span>
  47. &ndash; <a href="top10.php?type=donors&amp;limit=250" class="brackets">Top 250</a>
  48. <?php break;
  49. case 250: ?>
  50. &ndash; <a href="top10.php?type=donors" class="brackets">Top 10</a>
  51. &ndash; <a href="top10.php?type=donors&amp;limit=100" class="brackets">Top 100</a>
  52. &ndash; <span class="brackets">Top 250</span>
  53. <?php break;
  54. default: ?>
  55. &ndash; <span class="brackets">Top 10</span>
  56. &ndash; <a href="top10.php?type=donors&amp;limit=100" class="brackets">Top 100</a>
  57. &ndash; <a href="top10.php?type=donors&amp;limit=250" class="brackets">Top 250</a>
  58. <?php } ?>
  59. </small>
  60. </h3>
  61. <table class="border top10_table">
  62. <tr class="colhead">
  63. <td class="center">Position</td>
  64. <td>User</td>
  65. <td style="text-align: left;">Total Donor Points</td>
  66. <td style="text-align: left;">Current Donor Rank</td>
  67. <td style="text-align: left;">Last Donated</td>
  68. </tr>
  69. <?php
  70. // In the unlikely event that query finds 0 rows...
  71. if (empty($Results)) {
  72. echo '
  73. <tr class="row">
  74. <td colspan="9" class="center">
  75. Found no users matching the criteria
  76. </td>
  77. </tr>
  78. </table><br />';
  79. }
  80. $Position = 0;
  81. foreach ($Results as $Result) {
  82. $Position++; ?>
  83. <tr class="row">
  84. <td class="center">
  85. <?=$Position?>
  86. </td>
  87. <td>
  88. <?=$Result['Hidden'] && !$IsMod ? 'Hidden' : Users::format_username($Result['UserID'], false, false, false)?>
  89. </td>
  90. <td style="text-align: left;">
  91. <?=check_perms('users_mod') || $Position < 51 ? $Result['TotalRank'] : 'Hidden'; ?>
  92. </td>
  93. <td style="text-align: left;">
  94. <?=$Result['Hidden'] && !$IsMod ? 'Hidden' : DonationsView::render_rank($Result['Rank'], $Result['SpecialRank'])?>
  95. </td>
  96. <td style="text-align: left;">
  97. <?=$Result['Hidden'] && !$IsMod ? 'Hidden' : time_diff($Result['DonationTime'])?>
  98. </td>
  99. </tr>
  100. <?php
  101. } ?>
  102. </table>
  103. <?php
  104. }