The following files exists in this folder. Click to view.
category.php117 lines UTF-8 Unix (LF) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
<?php
session_start();
// Startar sessionen för att kunna använda $_SESSION
if (!isset($_SESSION["userID"]))
header("location: login.php");
// Om användaren inte är inloggad, omdirigera till login-sidan
require_once "functions/database.php";
// Inkluderar databashanteringsfilen
?>
<!DOCTYPE html>
<html lang="en" data-bs-theme="dark">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Choose Media</title>
<!-- Bootstrap CSS från CDN -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
<!-- Bootstrap JS-bundle från CDN -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js"
integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI"
crossorigin="anonymous"></script>
</head>
<body>
<?php include "page/navbar.php" ?>
<!-- Inkluderar navigationsfältet -->
<div class="container">
<br>
<?php
$userData = $db->query(
"SELECT * FROM accountData WHERE userID=:userID",
array("userID" => $_SESSION["userID"])
);
if ($userData["isAdmin"])
// Hämtar kategori-information ifall man är admin
$categoryData = $db->query(
"SELECT c.* FROM category c WHERE c.categoryID=:categoryID",
array("categoryID"=>$_GET['id'])
);
else
// Hämtar kategori-information som användaren har tillgång till
$categoryData = $db->query(
"SELECT c.* FROM allowedIDs a INNER JOIN category c ON a.categoryID = c.categoryID WHERE a.userID=:userID AND a.categoryID=:categoryID AND hasAccess",
array("userID"=> $_SESSION["userID"],"categoryID" => $_GET['id'])
);
if(!$categoryData){
echo "<p>Nekad tillgång.</p>";
// Om ingen kategori hittas för användaren, visa meddelande
} else{
// echo "<pre>"; var_export($categoryData); echo "</pre>";
echo "<h1>{$categoryData['name']}</h1>";
echo "<h5>{$categoryData['description']}</h5>";
// Visa kategori-namn och beskrivning
$data = $db->queryAll(
"SELECT * FROM mediaFiles f WHERE f.categoryID=:categoryID AND CURRENT_DATE>=f.releaseDate",
array("categoryID" => $_GET['id'])
);
// Hämtar alla mediafiler för kategorin
// echo "<pre>"; var_export($data); echo "</pre>";
if(!$data){
echo '<h5 class="text-center" style="color: rgb(100,100,100)";>Inga filmer finns inom kategorin.</h5>';
// Om inga mediafiler finns, visa meddelande
}
$cardRowSize = 2;
// Antal kolumner per rad för kort-layout
function print_cell($data)
{
// Funktion för att skriva ut ett kort (card) med media
if (isset($data)){
$safename = htmlspecialchars($data["name"]);
echo <<<EOD
<div class="col">
<a href="movie.php?id={$data['mediaID']}" class="link-unchanged" style="text-decoration: none;">
<div class="card">
<div class="card-body">
<h5 class="card-title">{$safename}</h5>
</div>
</div>
</a>
</div>
EOD;
}
else
echo '<div class="col"></div>';
// Om ingen data finns, skriv ut en tom kolumn
}
for ($row = 0; $row < ceil(sizeof($data) / $cardRowSize); $row++) {
echo '<div class="row">';
for ($col = 0; $col < $cardRowSize; $col++) {
if (isset($data[$row * $cardRowSize + $col]))
print_cell($data[$row * $cardRowSize + $col]);
else
print_cell(null);
// Loopar igenom media-data och skapar rader/kolumner med kort
}
echo '</div><br>';
}
}
?>
<br>
</div>
</body>
</html>