<?php
/**
* @file admin.php
* @brief Hlavní administrační panel webu.
*
* Tento skript:
* - Zajišťuje přihlášení a správu session administrátora (včetně automatického odhlášení po neaktivitě).
* - Zobrazuje hlavní administrační rozcestník s možností přidávat a upravovat lektory, semináře, aktuality, tipy na výlety a ceník.
* - Umožňuje nastavit úvodní fotografii webu.
* - Zobrazuje kalendář s načtenými událostmi z databáze. V rozšířené verzi pro lepší orientaci administrátora.
* - Využívá Bootstrap pro vzhled a vlastní CSS styly.
* - Obsahuje jednoduchý JavaScript pro zavírání modálních oken.
*
* Přístup je povolen pouze přihlášeným uživatelům.
*/
session_start();
// doba přihlášení (e.g., 14400 sekund = 4h)
$timeout_duration = 14400;
// Zkontroluje zda je nestaven čas poslední aktivity
if (isset($_SESSION['last_activity'])) {
// Vypočítá dobu trvání session
$elapsed_time = time() - $_SESSION['last_activity'];
// Pokud doba trvání překročila nastavený limit, odhlásí uživatele
if ($elapsed_time >= $timeout_duration) {
session_unset();
session_destroy();
header('Location: login.php');
exit;
}
}
// Aktualizuje čas poslední aktivity
$_SESSION['last_activity'] = time();
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
header('Location: login.php');
exit;
}
?>
<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Admin panel</title>
<link
href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
rel="stylesheet" />
<link rel="stylesheet" href="css/admin.css" />
<link rel="icon" href="media/logo-oaza2.png" type="image/x-icon" />
</head>
<body class="adminBody">
<?php
include 'modal.php';
?>
<div class="container">
<div class="row">
<div class="col-12">
<div class="spacer50"></div>
</div>
<div class="col-md-6 col-lg-6 col-12">
<div class="headingAdmin">Přidat</div>
<div class="row">
<div class="col-12">
<a href="admin/addlector.php">
<div class="optionBox">Lektora</div>
</a>
</div>
<div class="col-12">
<a href="admin/addseminar.php">
<div class="optionBox">Seminář</div>
</a>
</div>
<div class="col-12">
<a href="admin/addaktualita.php">
<div class="optionBox">Aktuality</div>
</a>
</div>
<div class="col-12">
<a href="admin/addtrips.php">
<div class="optionBox">Tipy na výlety</div>
</a>
</div>
</div>
</div>
<div class="col-md-6 col-lg-6 col-12">
<div class="headingAdmin">Upravit</div>
<div class="row">
<div class="col-12">
<a href="admin_edit/editpricing.php">
<div class="optionBox">Ceník</div>
</a>
</div>
<div class="col-12">
<a href="admin_edit/editlector.php">
<div class="optionBox">Lektora</div>
</a>
</div>
<div class="col-12">
<a href="admin_edit/editseminar.php">
<div class="optionBox">Seminář</div>
</a>
</div>
<div class="col-12">
<a href="admin_edit/editaktuality.php">
<div class="optionBox">Aktuality</div>
</a>
</div>
<div class="col-12">
<a href="admin_edit/edittrips.php">
<div class="optionBox">Tipy na výlety</div>
</a>
</div>
</div>
</div>
<div class="col-12">
<a href="admin/mainphoto.php">
<div class="optionBox">Nastavení úvodní fotky</div>
</a>
</div>
<div class="col-12 calendarPart">
<?php
include 'Calendar.php'; ///< Soubor s funkcí a stylem kalendáře.
include 'db_connection.php'; ///< Připojení k databázi.
$calendar = new Calendar();
$calendar->load_events_from_db($conn);
echo $calendar;
?>
</div>
<div class="col-12">
<div class="spacer50"></div>
</div>
</div>
</div>
<script>
function closeModal(modalId) {
document.getElementById(modalId).style.display = 'none';
document.querySelector('.modal-backdrop').remove();
window.history.pushState({}, document.title, window.location.pathname);
}
</script>
</body>
</html>