ye so much

This commit is contained in:
ui0ppk 2023-02-11 19:11:59 +02:00
parent 419bd16056
commit cfd5763bcf
11 changed files with 190 additions and 34 deletions

0
admin.php Normal file
View File

View File

@ -47,6 +47,12 @@ if(isset($_GET["filter"])) {
$page = null;
}
$sql = "SELECT allStar FROM catalog ORDER BY RAND() LIMIT 1";
$q = $con->prepare(str_replace('allStar', 'name', $sql));
$q->execute();
$random_search_array = $q->fetch();
$random_search = array_rand($random_search_array, 1);
$getitstarted = new PartyStarter;
$getitstarted->header();
?> </head>
@ -57,7 +63,7 @@ $getitstarted->header();
<br>
<form role="search" class="float-end" style="width: 45%;">
<div class="input-group mb-3 shadow-sm">
<input class="form-control rounded-end-0" type="search" placeholder="Search an item..." name="search" aria-label="Search">
<input class="form-control rounded-end-0" type="search" placeholder="<?php echo htmlspecialchars($random_search_array[$random_search]) ?? "Search an item..."; ?>" name="search" aria-label="Search">
<button id="search" type="submit" class="btn btn-primary rounded-start-0">Search</button>
</div>
</form>

View File

@ -1,5 +1,6 @@
<?php
require 'core/config.php';
require 'core/classes/user.php';
class PartyStarter {
function bootstrap() {
@ -16,7 +17,7 @@ class PartyStarter {
$adminTab = " ";
if (isset($_SESSION['user'])) {
$showhome = ' <li class="nav-item text-dark" style="color: #FFFFFF;">
<a class="nav-link text-dark" href="/home"><i class="bi bi-house"></i> Home
<a class="nav-link text-dark nav-animated" href="/home"><i class="bi bi-house"></i> Home
<span class="visually-hidden">(current)</span>
</a>
</li>';
@ -37,7 +38,7 @@ class PartyStarter {
// if admin
if($query->fetch(PDO::FETCH_ASSOC)["admin"] >= 1) {
$adminTab = ' <li class="nav-item">
$adminTab = ' <li class="nav-item nav-animated">
<a class="nav-link text-dark" href="/admin"><i class="bi bi-hammer"></i> Admin</a>
</li>';
} else {
@ -45,7 +46,28 @@ class PartyStarter {
}
$grubloxlogotohome = '<a class="navbar-brand text-dark" href="/home"><span class="grufont fs-3">G </span><span class="gotham">GRUBLOX</span></a>';
$money = $query->fetch(PDO::FETCH_ASSOC)["money"] ?? "0";
$user = new User($con, $_SESSION['user']);
$money = $user->getMoney(false);
if($user->getLastPaid() !== NULL) {
$dateToCheck = (int)$user->getLastPaid()+86400;
if($user->getLastPaid() >= $dateToCheck) {
$q = $con->prepare("UPDATE users SET money=money+:price WHERE id=:id");
$q->bindParam(':id',$_SESSION['user'],PDO::PARAM_INT);
$q->bindParam(':price',$pay,PDO::PARAM_INT);
$q->execute();
}
} else {
$q = $con->prepare("UPDATE users SET lastPaid=:date WHERE id=:id");
$q->bindParam(':id',$_SESSION['user'],PDO::PARAM_INT);
$q->bindParam(':date',time(),PDO::PARAM_INT);
$q->execute();
$q = $con->prepare("UPDATE users SET money=money+:price WHERE id=:id");
$q->bindParam(':id',$_SESSION['user'],PDO::PARAM_INT);
$q->bindParam(':price',$pay,PDO::PARAM_INT);
$q->execute();
}
if ($money < 1000000) {
// Anything less than a million
@ -66,7 +88,7 @@ class PartyStarter {
<li class="nav-item"><a class="nav-link text-dark" style="font-size: 1.1rem"><span class="grufont" style="font-size: 1.25rem">@ </span>'.$money.'</a></li>
<li class="nav-item dropdown">
<button class="nav-link border-0 text-dark dropdown-toggle bg-transparent" data-bs-toggle="dropdown" aria-expanded="false">
<img height=32 width=32 class="rounded-5 border border-2" src="/assets/renders/user/headshot?userId='.(int)htmlspecialchars($_SESSION['user']).'">
<img height=32 width=32 class="rounded-5" src="/assets/renders/user/headshot?userId='.(int)htmlspecialchars($_SESSION['user']).'">
</button>
<ul class="dropdown-menu dropdown-menu-lg-end profile-dropdown" style="z-index: -2;">
<li><a class="nav-link ms-2" href="/user"><span class="bi bi-person-circle"></span> Profile</a></li>
@ -76,10 +98,10 @@ class PartyStarter {
</li>';
} else {
$rightside = '
<li class="nav-item">
<li class="nav-item nav-animated">
<a class="nav-link text-dark" href="/register">Register</a>
</li>
<li class="nav-item">
<li class="nav-item nav-animated">
<a class="nav-link text-dark" href="/login">Login</a>
</li>';
}
@ -98,13 +120,13 @@ class PartyStarter {
<div class="collapse navbar-collapse" id="navbarColor03">
<ul class="navbar-nav me-auto ml-auto" style="color: #FFFFFF;">
' . $showhome . '
<li class="nav-item">
<li class="nav-item nav-animated">
<a class="nav-link text-dark" href="/games"><i class="bi bi-controller"></i> Games</a>
</li>
<li class="nav-item">
<li class="nav-item nav-animated">
<a class="nav-link text-dark" href="/catalog"><i class="bi bi-shop"></i> Catalog</a>
</li>
<li class="nav-item">
<li class="nav-item nav-animated">
<a class="nav-link text-dark" href="/about"><i class="bi bi-question-circle"></i> About</a>
</li>
'.$adminTab.'

View File

@ -55,4 +55,16 @@ class User {
return $this->sqlData["password"] ?? "Undefined";
}
public function getAvatar() {
return "/assets/renders/user/headshot?userId=".$this->sqlData["id"];
}
public function getAvatarFull() {
return "/assets/renders/user/fullbody?userId=".$this->sqlData["id"];
}
public function getLastPaid() {
return $this->sqlData["lastPaid"];
}
}

View File

@ -2,6 +2,10 @@
ob_start();
error_reporting(0);
// settingz
//daily pay aka mone
$pay = 15;
$sitename = "Grublox";
$version = 1.1;
@ -41,7 +45,7 @@ $donators = array('"very"broken ps3', "«John»");
$arraybackground = array('win7.png', 'win8.png', 'epic.png', 'yosemite.png', 'aurora.png', 'tiger.png', 'fish.png', 'baconbloxii.png', 'win81yellow.jpg');
$youtubefunnies = array('bitqf13QU7Q', 'Z_V6yKKIk5U', '2tHl6O5Sp8w', '-5WcDfKndxU', 'cwyTleTL06Y','Rr8XkF5TBLU','kQvlOulY9SI');
$youtubefunnies = array('bitqf13QU7Q', 'Z_V6yKKIk5U', '2tHl6O5Sp8w', '-5WcDfKndxU', 'cwyTleTL06Y','Rr8XkF5TBLU','kQvlOulY9SI','vVdvTnhkTO8', 'D3GOh7FLDbA', '6utdxDQpoY8');
if(isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
$_SERVER["REMOTE_ADDR"] = $_SERVER["HTTP_CF_CONNECTING_IP"];

View File

@ -44,6 +44,20 @@ animation: profile-dropdown-anim 0.3s ease 0s 1 normal none;
}
}
.nav-animated:hover {
animation: hover-nav-link 0.4s ease 0s 1 normal forwards;
}
@keyframes hover-nav-link {
0% {
transform: translateY(0);
}
100% {
transform: translateY(-2px);
}
}
/* hi do not skid css pls noob - quezip */

View File

@ -32,7 +32,7 @@ $random_search = array_rand($random_search_array, 1);
<h3 class="text-white">Games</h3>
<form role="search" style="width: 45%;">
<div class="input-group shadow-sm mt-1">
<input class="form-control rounded-end-0" type="search" placeholder="<?php echo htmlspecialchars($random_search_array[$random_search]); ?>" name="search" aria-label="Search">
<input class="form-control rounded-end-0" type="search" placeholder="<?php echo htmlspecialchars($random_search_array[$random_search]) ?? "Search a game..."; ?>" name="search" aria-label="Search">
<button id="search" type="submit" class="btn btn-primary rounded-start-0">Search</button>
</div>
</form>

View File

@ -94,7 +94,7 @@ $getitstarted->header();
?>
<div class="col">
<div class="card bg-dark border-start rounded shadow-sm" style="width: 11.5rem;">
<a href="game?id=<?php echo (int)htmlspecialchars($game["id"]); ?>" style="text-decoration: none; text-align: left; margin-bottom: 9px;">
<a href="place?id=<?php echo (int)htmlspecialchars($game["id"]); ?>" style="text-decoration: none; text-align: left; margin-bottom: 9px;">
<img src="<?php if (!empty($game["thumbnail"])) {echo htmlspecialchars($game["thumbnail"]);} else {echo "assets/placeholder.png";} ?>" class="card-img-top rounded-top" alt="<?php echo htmlspecialchars($game["name"]); ?>">
<div class="card-body">
<small class="card-title text-white" style="font-size: 1rem;"><?php echo htmlspecialchars($game["name"]); ?></small>

122
item.php
View File

@ -3,7 +3,6 @@ session_start();
require_once 'core/classes.php';
require_once 'core/classes/user.php';
$user = new User($con, $_SESSION['user'] ?? 0);
if(!isset($_GET["id"])) {
header("Location: ?id=".$_SESSION['user']);
@ -11,6 +10,13 @@ if(!isset($_GET["id"])) {
$id = (int)$_GET["id"];
}
if(isset($_SESSION['user'])) {
$user = new User($con, $_SESSION['user']);
$loggedIn = true;
} else {
$loggedIn = false;
}
function getMoney($money) {
if ($money < 1000000) {
// Anything less than a million
@ -28,10 +34,22 @@ $q = $con->prepare("SELECT * FROM catalog WHERE id = :id");
$q->bindParam(':id',$id,PDO::PARAM_INT);
$q->execute();
$item = $q->fetch();
$itemUser = new User($con, $item['creator']);
if(!$item) {
header('location: /error?err=404');
exit;
}
if($loggedIn == true) {
if($_POST['submit'] ?? "No" == "Yes") {
if($user->getMoney('false') >= htmlspecialchars($item["price"])) {
$q = $con->prepare("UPDATE users SET money=money-:price WHERE id=:id");
$q->bindParam(':id',$_SESSION['user'],PDO::PARAM_INT);
$q->bindParam(':price',$item['price'],PDO::PARAM_INT);
$q->execute();
}
}
}
?>
<!DOCTYPE html>
<html data-bs-theme="dark">
@ -43,24 +61,102 @@ $getitstarted->header();
</head>
<title><?php echo htmlspecialchars($item["name"]); ?> | <?php echo $sitename; ?></title>
<body>
<main class="container mx-auto">
<main class="container">
<div class="mx-auto w-75">
<br><br>
<h1 class="mt-3"><?php echo htmlspecialchars($item["name"]); ?></h1>
<div class="d-flex flex-row justify-content-center">
<img src="<?php if (!empty($item["thumbnail"])) {echo htmlspecialchars($item["thumbnail"]);} else {echo "assets/placeholder.png";} ?>">
<div>
sdasdas
<div class="card shadow-sm w-100">
<h3 class="card-header text-start"> <?php echo htmlspecialchars($item["name"]); ?> <?php if($item['limited'] == 1) { echo '
<span class="float-end badge bg-success">Limited</span>'; }; ?> </h3>
<div class="card-body mx-md-auto mx-xl-0">
<img class="img-thumbnail h-100" src="
<?php if (!empty($item["thumbnail"])) {echo htmlspecialchars($item["thumbnail"]);} else {echo "assets/placeholder.png";} ?>">
<div class="float-lg-end p-4 mt-md-2 mt-lg-0 border rounded-2">
<a href="user?id=<?php echo $item['creator']; ?>" class="text-decoration-none">
<img class="float-start border border-1 rounded-1 p-2 me-2" width=64 height=64 alt="<?php echo htmlspecialchars($item["name"]); ?>" src="<?php if (!empty($itemUser->getAvatar())) {echo htmlspecialchars($itemUser->getAvatar()); } ?>">
<p class="text-white"> <?php echo $itemUser->getUsername(); ?> </p>
</a>
<br>
<p>Price: <span class="text-success">
<span class="grufont fs-5">@ </span> <?php echo getMoney(htmlspecialchars($item["price"]))." (".htmlspecialchars($item["price"]).")"; ?> </span>
</p>
<p>Description: <span class="text-white"> <?php echo htmlspecialchars($item["description"]); ?> </span>
</p>
<p>Type: <span class="text-white"> <?php echo ucfirst(htmlspecialchars($item["type"])); ?> </span>
</p>
<p>Sales: <span class="text-white"> <?php echo ucfirst(htmlspecialchars($item["sales"])); ?> </span>
</p>
<button class="btn btn-success fs-4 <?php if($loggedIn == false) { echo "disabled"; } ?>" data-bs-toggle="modal" data-bs-target="#exampleModal" style="width: 13rem;">Buy with <span class="grufont fs-3">@</span>
</button>
</div>
</div>
</div>
<div class="border border-2 bg-light-subtle h-25" style="width: 13rem;">
<div class="mx-auto text-center p-2">
<p>Price: <span class="text-success"><span class="grufont fs-5">@ </span><?php echo getMoney(htmlspecialchars($item["price"]))." (".htmlspecialchars($item["price"]).")"; ?></span></p>
<button class="btn btn-success" style="width: 10rem;">Buy with <span class="grufont fs-5">@</span></button>
<p>(0 sold)</p>
<div class="card">
<div class="card-header">
<ul class="nav nav-tabs card-header-tabs nav-fill">
<li class="nav-item"> <button class="nav-link active" id="comments-tab" data-bs-toggle="pill" data-bs-target="#comments" type="button" role="tab" aria-controls="comments" aria-selected="true">Comments</button> </li>
<li class="nav-item"> <button class="nav-link" id="trades-tab" data-bs-toggle="pill" data-bs-target="#trades" type="button" role="tab" aria-controls="trades" aria-selected="false">Trades</button> </li>
</ul>
</div>
<div class="card-body text-center">
<div class="tab-content" id="v-pills-tabContent">
<div class="tab-pane fade show active" id="comments" role="tabpanel" aria-labelledby="comments-tab" tabindex="0">soon commentz</div>
<div class="tab-pane fade" id="trades" role="tabpanel" aria-labelledby="trades-tab" tabindex="0">idk if we adding trades..</div>
</div>
</div>
</div>
</div>
</div>
<?php if($loggedIn == true) {
if($user->getMoney('false') >= htmlspecialchars($item["price"])) {
echo '
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="exampleModalLabel">Confirmation</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
Are you sure you want to buy <b>'.htmlspecialchars($item["name"]).'</b> for <b><span class="grufont fs-5">@ </span>'.getMoney(htmlspecialchars($item["price"])).' ('.htmlspecialchars($item["price"]).')</b>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-bs-dismiss="modal">No</button>
<form action="" method="post"> <input type="submit" name="submit" class="btn btn-success" value="Yes"> </form>
</div>
</div>
</div>
</div>
';
} else {
echo '
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="exampleModalLabel">Confirmation</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
You cannot afford <b>'.htmlspecialchars($item["name"]).'</b>, you need <b><span class="grufont fs-5">@ </span>'.getMoney(htmlspecialchars($item["price"] - $user->getMoney('false'))).' ('.htmlspecialchars($item["price"] - $user->getMoney('false')).')</b> more.
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-bs-dismiss="modal">No</button>
<button type="button" class="btn btn-success disabled">Yes</button>
</div>
</div>
</div>
</div>
';
}
}
?>
</main>
</body>

View File

@ -10,6 +10,7 @@ if(isset($_SESSION['user'])) {
// some shitty code by nolanwhy
// yes i coded all of this inside github editor
if(!isset($_GET["id"])) {
$id = (int)$_SESSION['user'];
header("Location: ?id=".$_SESSION['user']);
} else {
$id = (int)$_GET["id"];
@ -57,10 +58,10 @@ $getitstarted->header();
<div class="card-body">
<ul class="nav justify-content-center">
<li class="nav-item fs-5" style="margin-right: 25%">
<a class="nav-link" href="#about">About</a>
<a class="nav-link text-white" href="#about">About</a>
</li>
<li class="nav-item fs-5" style="margin-left: 25%">
<a class="nav-link" href="#games">Creations</a>
<a class="nav-link text-white" href="#games">Creations</a>
</li>
</ul>
</div>
@ -76,14 +77,14 @@ $getitstarted->header();
</div>
<h3 class="mt-3">Currently wearing</h3>
<div class="card shadow-sm float-start w-50 border-end-0 rounded-end-0 mb-4" style="height: 350px">
<div class="card shadow-sm mb-4" style="height: 350px">
<div class="card-body mx-auto">
<img src="/assets/renders/user/thumbnail?userId=1" height=350>
<img src="/assets/renders/user/fullbody?userId=1" height=350>
<a class="btn btn-light position-absolute top-0 end-0 mt-2 me-2">3D</a>
</div>
</div>
<!-- items !-->
<!-- items, wont use.
<div class="card shadow-sm float-end w-50 border-start-0 rounded-start-0 bg-primary mb-4" style="height: 350px">
<div class="card-body">
<div class="row row-cols-1 row-cols-md-4 g-4 mx-auto">
@ -91,10 +92,10 @@ $getitstarted->header();
</div>
</div>
</div>
!-->
<div class="card shadow-sm">
<div class="card-body mx-auto">
<div class="card-body d-flex d-flex-row mx-auto">
<div class="card-group">
<div class="text-center float-start ms-5 me-5">
<h5>Join Date</h5>
@ -110,7 +111,8 @@ $getitstarted->header();
</div>
</div>
</div>
</div>
<div class="mt-3" />
</main>
</body>
</html>