KyleMassacre

here

May 18th, 2013
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.63 KB | None | 0 0
  1. <?php
  2. /**
  3.  * Let administrators add or remove premium days from themselves or other users.
  4.  */
  5.  
  6. // Not an admin? Go away!
  7. if (!IsModerator())
  8. {
  9.     header("Location: index.php");
  10.     return;
  11. }
  12. TableHeader("Select person you want to Add or remove Premium Days too then click Add or Remove");
  13. // An Premium Days has been defined
  14. if (isset($_POST['user']))
  15. {
  16.     $user = FindUser($_POST['user']);
  17.     // User not found
  18.     if ($user == NULL)
  19.         ErrorMessage("User not found.");
  20.     else if (is_integer($_POST['quantity']))
  21.         ResultMessage("Must be a number");
  22.     else if ($_POST['quantity'] + 0 > 1000)
  23.         ResultMessage("Must be between 0 and 1000 days.");
  24.     else if ($_POST['quantity'] + 0 < 0)
  25.         ResultMessage("Must be between 0 and 1000 days");
  26.     else
  27.     {
  28.         // Let's try to add the Premium Days.
  29.         try
  30.         {
  31.             if (isset($_POST["cmd"]))
  32.             {
  33.                 $name = $db->LoadData("select username from users where id = ?", $_POST["user"]);
  34.                 $currentMembership = GetUserVariable(premiumMember, $_POST["user"]);
  35.                 $start = date("y-m-d",time());
  36.                 $end = strtotime(date("y-m-d",GetUserVariable(premiumMember, $_POST["user"])));
  37.                 $days_between = dateDiff($start,$end,3);
  38.                 if ($_POST["cmd"] == "add")
  39.                 {
  40.                     $result = $db->Execute("select username from users where id =?", $user);
  41.                     if ($currentMembership == null || $currentMembership + 0 < time())
  42.                         $currentMembership = time() + ($_POST["quantity"] * 60 * 60 * 24);
  43.                     else
  44.                         $currentMembership += $_POST["quantity"] * 60 * 60 * 24;
  45.                     SetUserVariable(premiumMember, $currentMembership, $_POST["user"]);
  46.                     ResultMessage(Translate("%s Days were given to User: %s", $_POST["quantity"], $name["username"]));
  47.                     $timeL = floor(time() - GetUserVariable(premiumMember, $_POST["user"]) % 60 / 86400);
  48.                     if (function_exists("SendMessage"))
  49.                         SendMessage($_POST["user"], "You got a gift", Translate("We have decided to give you %s Premium Days, your status ends in %s. Enjoy them", $_POST["quantity"],$days_between), 1);
  50.                 }
  51.                 else if ($_POST["cmd"] == "remove")
  52.                 {
  53.                     $date = GetUserVariable(premiumMember, $_POST["user"]) - time();
  54.                     $result = $db->Execute("select username from users where id =?", $user);
  55.                     $currentMembership = GetUserVariable(premiumMember, $_POST["user"]);
  56.                     if ($currentMembership == null || $currentMembership + 0 < time())
  57.                         $currentMembership = time() + ($_POST["quantity"] * 60 * 60 * 24);
  58.                     else
  59.                         $currentMembership -= $_POST["quantity"] * 60 * 60 * 24;
  60.                     SetUserVariable(premiumMember, $currentMembership, $_POST["user"]);
  61.                     ResultMessage(Translate("%s Days were removed from User: %s", $_POST["quantity"], $name["username"]));
  62.                     if (function_exists("SendMessage"))
  63.                         SendMessage($_POST["user"], "I have bad news", Translate("You have lost %s Premium Days. If you have any question contact staff", $_POST["quantity"]), 1);
  64.                 }
  65.                 else
  66.                 {
  67.                     ResultMessage(Translate("All Premium Days were removed from User: %s", $name["username"]));
  68.                     if (function_exists("SendMessage"))
  69.                         SendMessage($_POST["user"], "I have bad news", Translate("You have lost your Premium status. If you have any question contact staff"), 1);
  70.                     SetUserVariable(premiumMember, time(), $_POST["user"]);
  71.                 }
  72.                
  73.             }
  74.         }
  75.         catch (Exception $ex)
  76.         {
  77.             ErrorMessage($ex->getMessage());
  78.         }
  79.     }
  80. }
  81.  
  82. if (!isset($_POST['user']))
  83.     $_POST['user'] = $userId;
  84. if (!isset($_POST['quantity']))
  85.     $_POST['quantity'] = 1;
  86. echo "<form method='post' name='frmPremium'>";
  87. echo "<table class='plainTable'>";
  88. echo "<input type='hidden' name='cmd' value='add'>";
  89.  
  90. echo "<tr><td width='1%'>" . Translate("User:") . "</td><td>" . SmartSelection("select id,username from users where id <> 1", "user", $_POST['user']) . "</td></tr>";
  91. echo "<tr><td width='1%'>" . Translate("Days:") . "</td><td><input type='text' name='quantity' value='" . htmlentities($_POST['quantity']) . "'></td></tr>";
  92. echo "</table>";
  93. echo "</form>";
  94.  
  95. ButtonArea();
  96. SubmitButton("Add", "frmPremium");
  97. LinkButton("Remove", "#", "document.forms['frmPremium'].cmd.value='remove';document.forms['frmPremium'].submit();return false;");
  98. LinkButton("Remove Status", "#", "document.forms['frmPremium'].cmd.value='drop';document.forms['frmPremium'].submit();return false;");
  99. EndButtonArea();
  100.  
  101. //Special Thanks to http://www.if-not-true-then-false.com/2010/php-calculate-real-differences-between-two-dates-or-timestamps
  102.  
  103. function dateDiff($time1, $time2, $precision = 6) {
  104.     // If not numeric then convert texts to unix timestamps
  105.     if (!is_int($time1)) {
  106.       $time1 = strtotime($time1);
  107.     }
  108.     if (!is_int($time2)) {
  109.       $time2 = strtotime($time2);
  110.     }
  111.  
  112.     // If time1 is bigger than time2
  113.     // Then swap time1 and time2
  114.     if ($time1 > $time2) {
  115.       $ttime = $time1;
  116.       $time1 = $time2;
  117.       $time2 = $ttime;
  118.     }
  119.  
  120.     // Set up intervals and diffs arrays
  121.     $intervals = array('year','month','day','hour','minute','second');
  122.     $diffs = array();
  123.  
  124.     // Loop thru all intervals
  125.     foreach ($intervals as $interval) {
  126.       // Set default diff to 0
  127.       $diffs[$interval] = 0;
  128.       // Create temp time from time1 and interval
  129.       $ttime = strtotime("+1 " . $interval, $time1);
  130.       // Loop until temp time is smaller than time2
  131.       while ($time2 >= $ttime) {
  132.     $time1 = $ttime;
  133.     $diffs[$interval]++;
  134.     // Create new temp time from time1 and interval
  135.     $ttime = strtotime("+1 " . $interval, $time1);
  136.       }
  137.     }
  138.  
  139.     $count = 0;
  140.     $times = array();
  141.     // Loop thru all diffs
  142.     foreach ($diffs as $interval => $value) {
  143.       // Break if we have needed precission
  144.       if ($count >= $precision) {
  145.     break;
  146.       }
  147.       // Add value and interval
  148.       // if value is bigger than 0
  149.       if ($value > 0) {
  150.     // Add s if value is not 1
  151.     if ($value != 1) {
  152.       $interval .= "s";
  153.     }
  154.     // Add value and interval to times array
  155.     $times[] = $value . " " . $interval;
  156.     $count++;
  157.       }
  158.     }
  159.  
  160.     // Return string with times
  161.     return implode(", ", $times);
  162.   }
Advertisement
Add Comment
Please, Sign In to add comment