run( "SELECT TimeCreated FROM InviteTickets WHERE CreatedBy = :UserID AND TimeCreated + 5 > UNIX_TIMESTAMP()", [":UserID" => SESSION["user"]["id"]] ); if($LastTicket->rowCount()) { $Alert = ["Text" => "Please wait ".GetReadableTime($LastTicket->fetchColumn(), ["RelativeTime" => "5 seconds"])." before creating a new invite ticket", "Color" => "danger"]; } else { $Ticket = sprintf("PolygonTicket(%s)", bin2hex(random_bytes(16))); Database::singleton()->run( "INSERT INTO InviteTickets (Ticket, TimeCreated, CreatedBy) VALUES (:Ticket, UNIX_TIMESTAMP(), :UserID)", [":Ticket" => $Ticket, ":UserID" => SESSION["user"]["id"]] ); Users::LogStaffAction(sprintf( "[ Create Invite Ticket ] %s created an invite ticket with the key \"%s\"", SESSION["user"]["username"], $Ticket )); $Alert = ["Text" => sprintf("Your key has been created! %s", $Ticket), "Color" => "success"]; } } $Page = $_GET["Page"] ?? 1; $TicketCount = Database::singleton()->run("SELECT COUNT(*) FROM InviteTickets")->fetchColumn(); $Pagination = Pagination($Page, $TicketCount, 20); $Tickets = Database::singleton()->run( "SELECT InviteTickets.*, Users1.username AS CreatedByName, Users2.username AS UsedByName FROM InviteTickets INNER JOIN users AS Users1 ON Users1.id = InviteTickets.CreatedBy LEFT JOIN users AS Users2 ON Users2.id = InviteTickets.UsedBy ORDER BY TimeCreated DESC LIMIT 20 OFFSET :Offset", [":Offset" => $Pagination->Offset] ); $pageBuilder = new PageBuilder(["title" => "Invite Tickets"]); $pageBuilder->buildHeader(); ?>
px-2 py-1" role="alert">

Invite Tickets

fetch(\PDO::FETCH_OBJ)) { ?> UsedBy == NULL) { ?>
Ticket Creator Used By Created
Ticket)?> CreatedByName?> No One UsedByName?> TimeCreated)?>
Pages > 1) { ?> buildFooter(); ?>