Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Let administrators add or remove premium days from themselves or other users.
- */
- // Not an admin? Go away!
- if (!IsModerator())
- {
- header("Location: index.php");
- return;
- }
- TableHeader("Select person you want to Add or remove Premium Days too then click Add or Remove");
- // An Premium Days has been defined
- if (isset($_POST['user']))
- {
- $user = FindUser($_POST['user']);
- // User not found
- if ($user == NULL)
- ErrorMessage("User not found.");
- else if (is_integer($_POST['quantity']))
- ResultMessage("Must be a number");
- else if ($_POST['quantity'] + 0 > 1000)
- ResultMessage("Must be between 0 and 1000 days.");
- else if ($_POST['quantity'] + 0 < 0)
- ResultMessage("Must be between 0 and 1000 days");
- else
- {
- // Let's try to add the Premium Days.
- try
- {
- if (isset($_POST["cmd"]))
- {
- $name = $db->LoadData("select username from users where id = ?", $_POST["user"]);
- $currentMembership = GetUserVariable(premiumMember, $_POST["user"]);
- $start = date("y-m-d",time());
- $end = strtotime(date("y-m-d",GetUserVariable(premiumMember, $_POST["user"])));
- $days_between = dateDiff($start,$end,3);
- if ($_POST["cmd"] == "add")
- {
- $result = $db->Execute("select username from users where id =?", $user);
- if ($currentMembership == null || $currentMembership + 0 < time())
- $currentMembership = time() + ($_POST["quantity"] * 60 * 60 * 24);
- else
- $currentMembership += $_POST["quantity"] * 60 * 60 * 24;
- SetUserVariable(premiumMember, $currentMembership, $_POST["user"]);
- ResultMessage(Translate("%s Days were given to User: %s", $_POST["quantity"], $name["username"]));
- $timeL = floor(time() - GetUserVariable(premiumMember, $_POST["user"]) % 60 / 86400);
- if (function_exists("SendMessage"))
- 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);
- }
- else if ($_POST["cmd"] == "remove")
- {
- $date = GetUserVariable(premiumMember, $_POST["user"]) - time();
- $result = $db->Execute("select username from users where id =?", $user);
- $currentMembership = GetUserVariable(premiumMember, $_POST["user"]);
- if ($currentMembership == null || $currentMembership + 0 < time())
- $currentMembership = time() + ($_POST["quantity"] * 60 * 60 * 24);
- else
- $currentMembership -= $_POST["quantity"] * 60 * 60 * 24;
- SetUserVariable(premiumMember, $currentMembership, $_POST["user"]);
- ResultMessage(Translate("%s Days were removed from User: %s", $_POST["quantity"], $name["username"]));
- if (function_exists("SendMessage"))
- SendMessage($_POST["user"], "I have bad news", Translate("You have lost %s Premium Days. If you have any question contact staff", $_POST["quantity"]), 1);
- }
- else
- {
- ResultMessage(Translate("All Premium Days were removed from User: %s", $name["username"]));
- if (function_exists("SendMessage"))
- SendMessage($_POST["user"], "I have bad news", Translate("You have lost your Premium status. If you have any question contact staff"), 1);
- SetUserVariable(premiumMember, time(), $_POST["user"]);
- }
- }
- }
- catch (Exception $ex)
- {
- ErrorMessage($ex->getMessage());
- }
- }
- }
- if (!isset($_POST['user']))
- $_POST['user'] = $userId;
- if (!isset($_POST['quantity']))
- $_POST['quantity'] = 1;
- echo "<form method='post' name='frmPremium'>";
- echo "<table class='plainTable'>";
- echo "<input type='hidden' name='cmd' value='add'>";
- echo "<tr><td width='1%'>" . Translate("User:") . "</td><td>" . SmartSelection("select id,username from users where id <> 1", "user", $_POST['user']) . "</td></tr>";
- echo "<tr><td width='1%'>" . Translate("Days:") . "</td><td><input type='text' name='quantity' value='" . htmlentities($_POST['quantity']) . "'></td></tr>";
- echo "</table>";
- echo "</form>";
- ButtonArea();
- SubmitButton("Add", "frmPremium");
- LinkButton("Remove", "#", "document.forms['frmPremium'].cmd.value='remove';document.forms['frmPremium'].submit();return false;");
- LinkButton("Remove Status", "#", "document.forms['frmPremium'].cmd.value='drop';document.forms['frmPremium'].submit();return false;");
- EndButtonArea();
- //Special Thanks to http://www.if-not-true-then-false.com/2010/php-calculate-real-differences-between-two-dates-or-timestamps
- function dateDiff($time1, $time2, $precision = 6) {
- // If not numeric then convert texts to unix timestamps
- if (!is_int($time1)) {
- $time1 = strtotime($time1);
- }
- if (!is_int($time2)) {
- $time2 = strtotime($time2);
- }
- // If time1 is bigger than time2
- // Then swap time1 and time2
- if ($time1 > $time2) {
- $ttime = $time1;
- $time1 = $time2;
- $time2 = $ttime;
- }
- // Set up intervals and diffs arrays
- $intervals = array('year','month','day','hour','minute','second');
- $diffs = array();
- // Loop thru all intervals
- foreach ($intervals as $interval) {
- // Set default diff to 0
- $diffs[$interval] = 0;
- // Create temp time from time1 and interval
- $ttime = strtotime("+1 " . $interval, $time1);
- // Loop until temp time is smaller than time2
- while ($time2 >= $ttime) {
- $time1 = $ttime;
- $diffs[$interval]++;
- // Create new temp time from time1 and interval
- $ttime = strtotime("+1 " . $interval, $time1);
- }
- }
- $count = 0;
- $times = array();
- // Loop thru all diffs
- foreach ($diffs as $interval => $value) {
- // Break if we have needed precission
- if ($count >= $precision) {
- break;
- }
- // Add value and interval
- // if value is bigger than 0
- if ($value > 0) {
- // Add s if value is not 1
- if ($value != 1) {
- $interval .= "s";
- }
- // Add value and interval to times array
- $times[] = $value . " " . $interval;
- $count++;
- }
- }
- // Return string with times
- return implode(", ", $times);
- }
Advertisement
Add Comment
Please, Sign In to add comment