<?php
/**
* @file editseminar.php
* @brief Administrace pro úpravu a mazání seminářů.
*
* Tento skript umožňuje administrátorovi:
* - Vybrat seminář ze seznamu a načíst jeho data podle ID.
* - Upravit všechny údaje semináře (nadpis, datumy, popis, lektor, více lektorů, barva).
* - Odeslat změny k uložení (aktualizace v databázi).
* - Smazat celý seminář (deleteseminar.php).
* - Zobrazit úspěšné nebo chybové hlášky po akcích.
* Přístup je povolen pouze přihlášeným uživatelům.
*/
session_start();
/**
* Kontrola, zda je uživatel přihlášen.
* Pokud není, přesměruje na přihlašovací stránku.
*/
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
header('Location: login.php');
exit();
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Upravit seminář</title>
</head>
<body>
<?php
include '../db_connection.php'; ///< Připojení k databázi.
$conn->set_charset("utf8mb4");
/**
* Zpracování POST požadavku pro aktualizaci semináře.
* Pokud je formulář odeslán, provede update v databázi podle ID.
*/
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$id = $_POST['id'];
$heading = $_POST['heading'];
$timefrom = $_POST['timefrom'];
$timeto = $_POST['timeto'];
$description = $_POST['description'];
$lector_id = $_POST['lector_id'];
$lectors = $_POST['lectors'];
$color = $_POST['color'];
// Aktualizace údajů semináře v databázi
$stmt = $conn->prepare('UPDATE events SET heading = ?, timefrom = ?, timeto = ?, description = ?, lector_id = ?, lectors = ?, color = ? WHERE id = ?');
$stmt->bind_param('ssssissi', $heading, $timefrom, $timeto, $description, $lector_id, $lectors, $color, $id);
if ($stmt->execute()) {
$success = 'Seminář byl aktualizován';
} else {
$error = 'Vyskytla se chyba';
}
$stmt->close();
}
/**
* Načtení dat semináře podle ID z GET parametru.
* Výsledek je uložen do proměnné $seminar pro předvyplnění formuláře.
*/
$seminar = null;
if (isset($_GET['id'])) {
$id = $_GET['id'];
$result = $conn->query("SELECT * FROM events WHERE id = $id");
$seminar = $result->fetch_assoc();
}
?>
<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Upravit Seminář</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet" />
<link rel="stylesheet" href="../admin.css" />
</head>
<body>
<div class="container mt-5">
<a href="../admin.php" class="backbtn">Zpět na panel</a>
<h2 class="text-center mb-4 hedingForm">Upravit Seminář</h2>
<?php if (isset($success)) {
echo '<div class="alert alert-success text-center">' . $success . '</div>';
} ?>
<?php if (isset($error)) {
echo '<div class="alert alert-danger text-center">' . $error . '</div>';
} ?>
<?php if (isset($_SESSION['success'])) {
echo '<div class="alert alert-success text-center">' . $_SESSION['success'] . '</div>';
unset($_SESSION['success']);
} ?>
<?php if (isset($_SESSION['error'])) {
echo '<div class="alert alert-danger text-center">' . $_SESSION['error'] . '</div>';
unset($_SESSION['error']);
} ?>
<div class="row justify-content-center">
<div class="col-md-8">
<form action="editseminar.php" method="post">
<input type="hidden" name="id" value="<?php echo $seminar['id'] ?? ''; ?>">
<div class="form-group">
<label for="heading">Nadpis</label>
<input type="text" class="form-control" id="heading" name="heading" value="<?php echo $seminar['heading'] ?? ''; ?>">
</div>
<div class="form-group">
<label for="timefrom">Čas Od</label>
<input type="date" class="form-control" id="timefrom" name="timefrom" value="<?php echo $seminar['timefrom'] ?? ''; ?>">
</div>
<div class="form-group">
<label for="timeto">Čas Do</label>
<input type="date" class="form-control" id="timeto" name="timeto" value="<?php echo $seminar['timeto'] ?? ''; ?>">
</div>
<div class="form-group">
<label for="description">Bližší info:</label>
<input type="text" class="form-control" id="description" name="description" value="<?php echo $seminar['description'] ?? ''; ?>">
</div>
<div class="form-group">
<label for="lector_id">Lektor</label>
<select class="form-control" id="lector_id" name="lector_id">
<?php
$result = $conn->query('SELECT id, name FROM lectors');
while ($row = $result->fetch_assoc()) {
$selected = isset($seminar) && $row['id'] == $seminar['lector_id'] ? 'selected' : '';
echo '<option value="' . $row['id'] . '" ' . $selected . '>' . $row['name'] . '</option>';
}
?>
</select>
</div>
<div class="form-group">
<label for="lectors">Bez medailonku / více lektorů</label>
<input type="text" id="lectors" name="lectors" value="<?php echo $seminar['lectors'] ?? ''; ?>" class="form-control">
</div>
<div class="form-group">
<label>Barva</label><br>
<input type="radio" id="color1" name="color" value="1" <?php echo isset($seminar) && $seminar['color'] == 1 ? 'checked' : ''; ?>>
<label for="color1">Seminář</label><br>
<input type="radio" id="color2" name="color" value="2" <?php echo isset($seminar) && $seminar['color'] == 2 ? 'checked' : ''; ?>>
<label for="color2">Ozdravné pobyty</label><br>
<input type="radio" id="color3" name="color" value="3" <?php echo isset($seminar) && $seminar['color'] == 3 ? 'checked' : ''; ?>>
<label for="color3">Firemní</label><br>
<input type="radio" id="color4" name="color" value="4" <?php echo isset($seminar) && $seminar['color'] == 4 ? 'checked' : ''; ?>>
<label for="color4">Ostatní</label>
</div>
<button type="submit" class="btn btn-primary btn-block">Upravit</button>
</form>
<form id="deleteSeminarForm" action="deleteseminar.php" method="post">
<input type="hidden" name="id" value="<?php echo $seminar['id'] ?? ''; ?>">
<button type="button" class="btn btn-danger btn-block mt-2 deleteSeminar" style="width: 120px" onclick="confirmDelete()">Smazat</button>
</form>
</div>
<div class="col-md-2">
<select name="seminar" id="seminar" onchange="location = this.value;">
<option value="">Vyberte seminář</option>
<?php
$result = $conn->query("SELECT id, heading, timefrom FROM events");
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo '<option value="editseminar.php?id=' . $row["id"] . '">' . $row["heading"] . ' (' . $row["timefrom"] . ')</option>';
}
}
?>
</select>
</div>
</div>
</div>
<script>
/**
* Zobrazí nebo skryje pole pro více lektorů podle výběru lektora.
* Pokud je vybrán lektor s ID 4, zobrazí pole pro více lektorů.
*/
function toggleLectorsInput() {
const lectorSelect = document.getElementById('lector_id');
const lectorsInputGroup = document.getElementById('lectors').parentElement;
if (lectorSelect.value === "4") {
lectorsInputGroup.style.display = 'block';
} else {
lectorsInputGroup.style.display = 'none';
}
}
// Po načtení stránky nastaví správné zobrazení pole pro více lektorů a přidá event listener
document.addEventListener('DOMContentLoaded', function() {
const lectorSelect = document.getElementById('lector_id');
lectorSelect.addEventListener('change', toggleLectorsInput);
toggleLectorsInput(); // Initial call
});
/**
* Potvrzení smazání semináře.
* Po potvrzení odešle data formuláře pro smazání.
*/
function confirmDelete() {
if (confirm('Opravdu chcete smazat tento seminář?')) {
document.getElementById('deleteSeminarForm').submit();
}
}
</script>
</body>
</html>
</body>
</html>