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.

badge.php 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. $UserID = $LoggedUser['ID'];
  3. $BadgeID = $_GET['badge'];
  4. $ShopBadgeIDs = array(100, 101, 102, 103, 104, 105, 106, 107);
  5. $Prices = array(100 => 5000, 101 => 10000, 102 => 25000, 103 => 50000, 104 => 100000, 105 => 250000, 106 => 500000, 107 => 1000000);
  6. if (!$BadgeID) {
  7. $Err = 'No badge specified.';
  8. } elseif (!in_array($BadgeID, $ShopBadgeIDs)) {
  9. $Err = 'Invalid badge ID.';
  10. } elseif (Badges::has_badge($UserID, array('BadgeID' => $BadgeID))) {
  11. $Err = 'You already have this badge.';
  12. } elseif ($BadgeID != $ShopBadgeIDs[0] && !Badges::has_badge($UserID, array('BadgeID' => $ShopBadgeIDs[array_search($BadgeID, $ShopBadgeIDs)-1]))) {
  13. $Err = 'You haven\'t purchased the badges before this one!';
  14. } else {
  15. $DB->query("
  16. SELECT BonusPoints
  17. FROM users_main
  18. WHERE ID = $UserID");
  19. if ($DB->has_results()) {
  20. list($BP) = $DB->next_record();
  21. $BP = (int) $BP;
  22. if ($BP >= $Prices[$BadgeID]) {
  23. if (!Badges::award_badge($UserID, $BadgeID)) {
  24. $Err = 'Could not award badge, unknown error occurred.';
  25. } else {
  26. $DB->query("
  27. UPDATE users_main
  28. SET BonusPoints = BonusPoints - " . $Prices[$BadgeID] ."
  29. WHERE ID = $UserID");
  30. $DB->query("
  31. UPDATE users_info
  32. SET AdminComment = CONCAT('".sqltime()." - Purchased badge $BadgeID from store\n\n', AdminComment)
  33. WHERE UserID = $UserID");
  34. $Cache->delete_value("user_info_heavy_$UserID");
  35. }
  36. } else {
  37. $Err = 'Not enough '.BONUS_POINTS.'.';
  38. }
  39. }
  40. }
  41. View::show_header('Store'); ?>
  42. <div class='thin'>
  43. <h2 id='general'>Purchase <?=isset($Err)?'Failed':'Successful'?></h2>
  44. <div class='box pad' style='padding: 10px 10px 10px 20px;'>
  45. <p><?=isset($Err)?'Error: '.$Err:'You have purchased a badge'?></p>
  46. <p><a href='/store.php'>Back to Store</a></p>
  47. </div>
  48. </div>
  49. <? View::show_footer(); ?>