230 lines
8.7 KiB
PHP
230 lines
8.7 KiB
PHP
<?php
|
|
require_once 'core/classes.php';
|
|
headStart();?>
|
|
<!DOCTYPE html>
|
|
<html lang="en" data-bs-theme="dark">
|
|
<head>
|
|
<?php
|
|
|
|
function getMoney($money) {
|
|
if ($money < 1000000) {
|
|
// Anything less than a million
|
|
return number_format($money);
|
|
} else if ($money < 1000000000) {
|
|
// Anything less than a billion
|
|
return number_format($money / 1000000, 1) . 'M';
|
|
} else {
|
|
// At least a billion
|
|
return number_format($money / 1000000000, 1) . 'B';
|
|
}
|
|
}
|
|
|
|
require_once 'core/classes.php';
|
|
require_once 'core/classes/user.php';
|
|
|
|
$possibleFilters = [
|
|
"hats",
|
|
"shirts",
|
|
"tshirts",
|
|
"pants",
|
|
"gears",
|
|
"packages",
|
|
"heads",
|
|
"torso",
|
|
"leftarm",
|
|
"rightarm",
|
|
"leftleg",
|
|
"rightleg"
|
|
];
|
|
|
|
if(isset($_GET["filter"])) {
|
|
$filter = $_GET["filter"];
|
|
if(!in_array($filter,$possibleFilters)) {
|
|
header('location: /error?err=404');
|
|
exit;
|
|
}
|
|
} else {
|
|
$filter = NULL;
|
|
}
|
|
if(isset($_GET['p'])) {
|
|
$page = $_GET['p'];
|
|
} else {
|
|
$page = 1;
|
|
}
|
|
$limit = 18;
|
|
$page -= 1;
|
|
$offset = $page * $limit;
|
|
|
|
$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();
|
|
if($random_search_array || is_array($random_search_array)) {
|
|
$random_search = array_rand($random_search_array, 1);
|
|
}
|
|
|
|
$getitstarted = new PartyStarter;
|
|
$getitstarted->header();
|
|
?> </head>
|
|
<title><?php echo $pagename; ?> | <?php echo $sitename; ?></title>
|
|
<body>
|
|
<main class="container" style="height: 90vh;">
|
|
<br>
|
|
<br>
|
|
<form role="search" class="float-end" class="w-75">
|
|
<div class="input-group mb-3 shadow-sm">
|
|
<input class="form-control rounded-end-0" type="search" placeholder="<?php if(is_array($random_search_array)) { echo htmlspecialchars($random_search_array[$random_search]); } else { echo "Search an item..."; }; ?>" name="search" aria-label="Search">
|
|
<button id="search" type="submit" class="btn btn-primary rounded-start-0 text-white"><i class="bi bi-search"></i> Search</button>
|
|
</div>
|
|
</form>
|
|
<h2>Catalog</h2>
|
|
<hr>
|
|
<ul class="list-group float-start shadow-sm" style="width: 12rem;">
|
|
<li class="list-group-item text-bg-secondary" aria-current="true">
|
|
<small>Browse by</small>
|
|
<br>
|
|
<h4>Category</h4>
|
|
</li>
|
|
<a href="/catalog" class="list-group-item<?php if($filter == null) { ?> active<?php } ?>" aria-current="true">All categories</a>
|
|
<a href="?filter=hats" class="list-group-item<?php if($filter == "hats") { ?> active<?php } ?>">Hats</a>
|
|
<a href="?filter=shirts" class="list-group-item<?php if($filter == "shirts") { ?> active<?php } ?>">Shirts</a>
|
|
<a href="?filter=tshirts" class="list-group-item<?php if($filter == "tshirts") { ?> active<?php } ?>">T-shirts</a>
|
|
<a href="?filter=pants" class="list-group-item<?php if($filter == "pants") { ?> active<?php } ?>">Pants</a>
|
|
<a href="?filter=gears" class="list-group-item<?php if($filter == "gears") { ?> active<?php } ?>">Gears</a>
|
|
<a href="?filter=packages" class="list-group-item<?php if($filter == "packages") { ?> active<?php } ?>">Packages</a>
|
|
<button class="list-group-item text-start<?php if($filter == "heads" || $filter == "torso" || $filter == "leftarm" || $filter == "rightarm" || $filter == "leftleg" || $filter == "rightleg") { ?> active<?php } ?>" type="button" data-bs-toggle="dropdown" aria-expanded="false">Body parts</button>
|
|
<ul class="dropdown-menu">
|
|
<li>
|
|
<a class="dropdown-item<?php if($filter == "heads") { ?> active<?php } ?>" href="?filter=heads">Heads</a>
|
|
</li>
|
|
<li>
|
|
<a class="dropdown-item<?php if($filter == "torso") { ?> active<?php } ?>" href="?filter=torso">Torso</a>
|
|
</li>
|
|
<li>
|
|
<a class="dropdown-item<?php if($filter == "leftarm") { ?> active<?php } ?>" href="?filter=leftarm">Left arm</a>
|
|
</li>
|
|
<li>
|
|
<a class="dropdown-item<?php if($filter == "rightarm") { ?> active<?php } ?>" href="?filter=rightarm">Right arm</a>
|
|
</li>
|
|
<li>
|
|
<a class="dropdown-item<?php if($filter == "leftleg") { ?> active<?php } ?>" href="?filter=leftleg">Left leg</a>
|
|
</li>
|
|
<li>
|
|
<a class="dropdown-item<?php if($filter == "rightleg") { ?> active<?php } ?>" href="?filter=rightleg">Right leg</a>
|
|
</li>
|
|
</ul>
|
|
<li class="list-group-item">
|
|
<h5>Legend</h5>
|
|
<span class="badge bg-success" >Limited</span>
|
|
<br>
|
|
<p class="text-white">Limited Items </p>
|
|
<p>Items sold by people that are available for a limited time.</p>
|
|
<!--<div class="pt-2"></div>
|
|
<span class="badge bg-success">Limited <span class="badge bg-warning text-dark">U</span>
|
|
</span>
|
|
<br>
|
|
<p class="text-white">Limited Unique Items</p>
|
|
<p>A limited supply originally sold by <?php echo $sitename; ?>. Each unit is labeled with a serial number. Once sold out, you cannot buy them. </p>!-->
|
|
</li>
|
|
</ul>
|
|
<div class="row row-cols-xl-6 row-cols-lg-4 row-cols-md-3 row-cols-sm-2 g-4" style="margin-left: 200px; margin-top: 1px;">
|
|
<?php
|
|
if ($filter == NULL) {
|
|
$sql = "SELECT allStar FROM catalog";
|
|
$q = $con->prepare(str_replace('allStar', 'COUNT(*)', $sql));
|
|
$q->execute();
|
|
|
|
$numberOfItems = $q->fetchColumn();
|
|
$q = $con->prepare(str_replace('allStar', '*', $sql));
|
|
$q->execute();
|
|
} else {
|
|
$sql = "SELECT allStar FROM catalog WHERE type=:filter";
|
|
$q = $con->prepare(str_replace('allStar', 'COUNT(*)', $sql));
|
|
$q->bindParam(':filter', $filter);
|
|
$q->execute();
|
|
|
|
$numberOfItems = $q->fetchColumn();
|
|
$q = $con->prepare(str_replace('allStar', '*', $sql));
|
|
$q->bindParam(':filter', $filter);
|
|
$q->execute();
|
|
}
|
|
if ($numberOfItems >= 1) {
|
|
$rows = array_slice($q->fetchAll(), $offset, $limit);
|
|
foreach ($rows as $item) {
|
|
$query = $con->prepare('SELECT COUNT(id) FROM users WHERE id=:id');
|
|
$query->bindParam(':id', $_SESSION['user'], PDO::PARAM_INT);
|
|
$query->execute();
|
|
$userExists = $query->fetchColumn();
|
|
if($userExists <= 1) {
|
|
$user = new User($con, $item["creator"]);
|
|
$creator = [
|
|
"id" => (int)htmlspecialchars($item["creator"]),
|
|
"username" => $user->getUsername($con, (int)htmlspecialchars($item["creator"]))
|
|
];
|
|
} else {
|
|
$creator = [
|
|
"id" => 0,
|
|
"username" => "[ unknown user ]"
|
|
];
|
|
}
|
|
?>
|
|
<div class="position-relative col">
|
|
<div class="card shadow-sm h-100 d-inline-block">
|
|
<a href="item?id=<?php echo (int)htmlspecialchars($item["id"]); ?>">
|
|
<div class="d-inline-block card-img-top border border-1">
|
|
<img src="<?php if (!empty($item["thumbnail"])) {echo htmlspecialchars($item["thumbnail"]);} else {echo "assets/placeholder.png";} ?>" height=150 width=150></a>
|
|
<p class="me-1 mt-1 position-absolute top-0 end-0"><?php if($item['limited'] == 1) { echo '<span class="badge bg-success">Limited</span>'; }; ?></p>
|
|
</div>
|
|
<div class="card-body">
|
|
<h5 class="card-title"><?php echo htmlspecialchars($item["name"]); ?></h5>
|
|
<p class="card-text">
|
|
By <a href="user.php?id=<?php echo (int)htmlspecialchars($creator["id"]); ?>" class="btn-link"><?php echo htmlspecialchars($creator["username"]); ?></a><br>
|
|
<span class="text-success"><span class="grufont fs-5">@ </span><?php echo getMoney((int)htmlspecialchars($item["price"])); ?></span>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php
|
|
}
|
|
} else {
|
|
echo "</div> <h4 class='text-muted text-center'><i class='bi bi-egg-fried' style='font-size: 6rem;'></i><br> Looks like there are no items in the catalog yet...</h4>";} ?>
|
|
<br>
|
|
</div>
|
|
<?php
|
|
$numberOfPages = ceil($numberOfItems / $limit);
|
|
?>
|
|
<?php if(is_array($random_search_array)) { ?>
|
|
<div class="d-flex flex-row justify-content-center mb-3">
|
|
<ul class="pagination mt-3">
|
|
<li class="page-item"><a class="page-link" href="?p=<?php if($page > 0) { echo $page; } else { echo 1; } ?>">Previous</a></li>
|
|
<?php
|
|
for ($i=1; $i<=$numberOfPages; $i++) {
|
|
if($page == $i){
|
|
$class = 'active';
|
|
}else{
|
|
$class = '';
|
|
}
|
|
|
|
if ($page > -1) {
|
|
$i - 1;
|
|
echo "<li class='page-item'><a class='page-link' href='?p=$i'>$i</a></li>";
|
|
}
|
|
}
|
|
?>
|
|
<li class="page-item"><a class="page-link" href="?p=<?php if($page < $numberOfPages) { echo $page + 1; } else { echo $numberOfPages; } ?>">Next</a></li>
|
|
</ul>
|
|
</div>
|
|
<?php }
|
|
if ($numberOfItems <= 6) {
|
|
echo '<div style="margin-top: 16rem;">';
|
|
} else {
|
|
echo '<div>';
|
|
}
|
|
?>
|
|
<?php $getitstarted->footer(); ?>
|
|
</div>
|
|
</main>
|
|
</body>
|
|
</html>
|
|
|