The following files exists in this folder. Click to view.
categories.php153 lines UTF-8 Unix (LF) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
<?php
session_start();
// Startar sessionen för att kunna använda $_SESSION
if (!isset($_SESSION["userID"])) {
header("location: login.php");
exit();
// Om användaren inte är inloggad, omdirigera till login-sidan
}
require_once "functions/database.php";
// Inkluderar databashanteringsfilen
$userinfo = $db->query("SELECT * FROM accountData WHERE userID=:userID", array("userID" => $_SESSION["userID"]));
// Hämtar all användardata från databasen
if ($userinfo["isAdmin"] == 0) {
header("location: index.php");
exit();
// Om användaren inte är admin, omdirigera till startsidan
}
if (isset($_POST["save"]) && isset($_GET["categoryID"]) && isset($_POST["name"]) && isset($_POST["description"]))
$db->query("UPDATE category SET name=:name, description=:description WHERE categoryID=:categoryID", array(
"categoryID" => $_GET["categoryID"],
"name" => $_POST["name"],
"description" => $_POST["description"]
));
elseif (isset($_POST["delete"]) && isset($_GET["categoryID"])) {
$mediaFiles = $db->queryAll("SELECT fileURL FROM mediaFiles WHERE categoryID=:categoryID", array("categoryID" => $_GET["categoryID"]));
foreach ($mediaFiles as $file)
unlink("mediaFiles/{$file['fileURL']}");
$db->query("DELETE FROM mediaFiles WHERE categoryID=:categoryID", array("categoryID" => $_GET["categoryID"]));
$db->query("DELETE FROM allowedIDs WHERE categoryID=:categoryID", array("categoryID" => $_GET["categoryID"]));
$db->query("DELETE FROM category WHERE categoryID=:categoryID", array("categoryID" => $_GET["categoryID"]));
} elseif (isset($_POST["add"]) && isset($_POST["name"]) && isset($_POST["description"]))
$db->query("INSERT INTO category(name,description) VALUES (:name, :description)", array(
"name" => $_POST["name"],
"description" => $_POST["description"]
));
?>
<!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>Document</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>
<h1>Kategorier</h1>
<?php
$categories = $db->queryAll("SELECT * FROM category");
// Hämtar alla kategorier
//echo "<pre>"; var_export($data); echo "</pre>";
if (!$categories) {
echo '<h5 class="text-center" style="color: rgb(100,100,100)";>Inga kategorier finns.</h5>';
// Om inga kategorier 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))
echo <<<EOD
<div class="col">
<div class="card">
<div class="card-body">
<form method="POST" action="categories.php?categoryID={$data["categoryID"]}">
<div class="mb-3">
<label for="category-name{$data["categoryID"]}" class="form-label">Namn</label>
<div class="input-group">
<input type="text" name="name" class="form-control" id="category-name{$data["categoryID"]}" value="{$data["name"]}">
</div>
</div>
<div class="mb-3">
<label for="category-desc{$data["categoryID"]}" class="form-label">Beskrivning</label>
<div class="input-group">
<textarea class="form-control" name="description" id="category-desc{$data["categoryID"]}">{$data["description"]}</textarea>
</div>
</div>
<input type="submit" name="save" class="btn btn-info m-1" value="Spara">
<input type="submit" name="delete" class="btn btn-danger m-1" value="Ta bort">
</form>
</div>
</div>
</div>
EOD;
else
echo '<div class="col"></div>';
// Om ingen data finns, skriv ut en tom kolumn
}
for ($row = 0; $row < ceil(sizeof($categories) / $cardRowSize); $row++) {
echo '<div class="row">';
for ($col = 0; $col < $cardRowSize; $col++) {
if (isset($categories[$row * $cardRowSize + $col]))
print_cell($categories[$row * $cardRowSize + $col]);
else
print_cell(null);
// Loopar igenom media-data och skapar rader/kolumner med kort
}
echo '</div><br>';
}
?>
<br>
<h1>Lägg till ny kategori</h1>
<div class="card">
<div class="card-body">
<form method="POST" action="categories.php">
<div class="mb-3">
<label for="newcategory-name" class="form-label">Namn</label>
<div class="input-group">
<input type="text" name="name" class="form-control" id="newcategory-name">
</div>
</div>
<div class="mb-3">
<label for="newcategory-desc" class="form-label">Beskrivning</label>
<div class="input-group">
<textarea class="form-control" name="description" id="newcategory-desc"></textarea>
</div>
</div>
<input type="submit" name="add" class="btn btn-info m-1" value="Lägg till">
</form>
</div>
</div>
</div>
</body>
</html>