| Server IP : 193.86.120.172 / Your IP : 216.73.216.215 Web Server : Apache/2.4.63 (Unix) System : Linux JServices 3.10.108 #86003 SMP Wed Oct 22 13:20:46 CST 2025 x86_64 User : kubec ( 1026) PHP Version : 8.2.28 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /volume1/web/hotellesnizatisi_cz/new/ |
Upload File : |
<?php
require_once __DIR__ . '/includes/auth.php';
$user = require_role(['admin', 'manazer']);
require_once __DIR__ . '/includes/layout.php';
function get_setting(string $klic, string $default = ''): string
{
$stmt = db()->prepare('SELECT hodnota FROM web_nastaveni WHERE klic = ?');
$stmt->execute([$klic]);
$val = $stmt->fetchColumn();
return $val !== false ? $val : $default;
}
function set_setting(string $klic, string $hodnota): void
{
db()->prepare('
INSERT INTO web_nastaveni (klic, hodnota) VALUES (?, ?)
ON DUPLICATE KEY UPDATE hodnota = VALUES(hodnota)
')->execute([$klic, $hodnota]);
}
$kontaktEmail = get_setting('kontakt_email');
$bccEmail = get_setting('bcc_email');
$bccAktivni = get_setting('bcc_aktivni', '0') === '1';
$webZamknuty = get_setting('web_zamknuty', '0') === '1';
$webHesloNastaveno = get_setting('web_heslo_hash', '') !== '';
$errors = [];
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$action = $_POST['action'] ?? '';
if ($action === 'kontakt_email') {
$email = trim($_POST['kontakt_email'] ?? '');
if ($email === '' || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = 'Zadejte platnou e-mailovou adresu.';
$kontaktEmail = $email;
} else {
set_setting('kontakt_email', $email);
set_flash('success', 'Nastavení bylo uloženo.');
header('Location: nastaveni.php');
exit;
}
}
if ($action === 'bcc' && $user['role'] === 'admin') {
$email = trim($_POST['bcc_email'] ?? '');
$aktivni = isset($_POST['bcc_aktivni']) ? '1' : '0';
if ($aktivni === '1' && (!$email || !filter_var($email, FILTER_VALIDATE_EMAIL))) {
$errors[] = 'Pro zapnutí skryté kopie zadejte platnou e-mailovou adresu.';
$bccEmail = $email;
$bccAktivni = true;
} else {
set_setting('bcc_email', $email);
set_setting('bcc_aktivni', $aktivni);
set_flash('success', 'Nastavení skryté kopie bylo uloženo.');
header('Location: nastaveni.php');
exit;
}
}
if ($action === 'zamek' && $user['role'] === 'admin') {
$zamknuty = isset($_POST['web_zamknuty']) ? '1' : '0';
$noveHeslo = trim($_POST['web_heslo'] ?? '');
if ($zamknuty === '1' && $noveHeslo === '' && !$webHesloNastaveno) {
$errors[] = 'Pro zamknutí webu musíte nejdřív nastavit heslo.';
$webZamknuty = true;
} else {
set_setting('web_zamknuty', $zamknuty);
if ($noveHeslo !== '') {
set_setting('web_heslo_hash', password_hash($noveHeslo, PASSWORD_DEFAULT));
}
set_flash('success', 'Nastavení zámku webu bylo uloženo.');
header('Location: nastaveni.php');
exit;
}
}
}
admin_layout_start('nastaveni', 'Nastavení', 'Obecné nastavení webu', $user);
render_flash();
foreach ($errors as $err) {
echo '<div class="flash flash-error">' . htmlspecialchars($err) . '</div>';
}
?>
<form method="post" class="card" style="padding:26px 28px;max-width:560px;margin-bottom:24px;">
<input type="hidden" name="action" value="kontakt_email">
<div class="field">
<label for="kontakt_email">E-mail pro zprávy z kontaktního formuláře</label>
<input type="email" id="kontakt_email" name="kontakt_email" value="<?= htmlspecialchars($kontaktEmail) ?>">
<p style="font-size:.78rem;color:var(--ink-soft);margin-top:8px;">Na tuto adresu budou chodit zprávy odeslané přes kontaktní formulář na veřejném webu.</p>
</div>
<div style="display:flex;gap:10px;margin-top:24px;">
<button type="submit" class="btn btn-primary">Uložit</button>
</div>
</form>
<?php if ($user['role'] === 'admin'): ?>
<form method="post" class="card" style="padding:26px 28px;max-width:560px;">
<input type="hidden" name="action" value="bcc">
<h3 style="font-size:.95rem;margin-bottom:6px;">Skrytá kopie pro webmastera</h3>
<p style="font-size:.78rem;color:var(--ink-soft);margin-bottom:18px;">Viditelné jen pro admina. Slouží ke kontrole, že kontaktní formulář funguje — na tuto adresu půjde tichá kopie každé zprávy odeslané z webu.</p>
<div class="field">
<label for="bcc_email">E-mail pro skrytou kopii</label>
<input type="email" id="bcc_email" name="bcc_email" value="<?= htmlspecialchars($bccEmail) ?>">
</div>
<div class="toggle-row">
<label for="bcc_aktivni">Skrytá kopie zapnutá</label>
<input type="checkbox" id="bcc_aktivni" name="bcc_aktivni" <?= $bccAktivni ? 'checked' : '' ?>>
<label class="switch" for="bcc_aktivni"></label>
</div>
<div style="display:flex;gap:10px;margin-top:24px;">
<button type="submit" class="btn btn-primary">Uložit</button>
</div>
</form>
<form method="post" class="card" style="padding:26px 28px;max-width:560px;margin-top:24px;">
<input type="hidden" name="action" value="zamek">
<h3 style="font-size:.95rem;margin-bottom:6px;">Zámek veřejného webu</h3>
<p style="font-size:.78rem;color:var(--ink-soft);margin-bottom:18px;">Když je zapnutý, návštěvníci musí před vstupem na web zadat heslo — hodí se, dokud ještě není připravený ke spuštění naostro. Administrace tím není nijak dotčená, do ní se přihlašujete pořád stejně přes svůj účet.</p>
<div class="field">
<label for="web_heslo">Heslo pro vstup<?= $webHesloNastaveno ? ' (necháte-li prázdné, zůstane stávající)' : '' ?></label>
<input type="text" id="web_heslo" name="web_heslo" placeholder="<?= $webHesloNastaveno ? '••••••••' : 'Zadejte heslo' ?>">
</div>
<div class="toggle-row">
<label for="web_zamknuty">Web zamčený heslem</label>
<input type="checkbox" id="web_zamknuty" name="web_zamknuty" <?= $webZamknuty ? 'checked' : '' ?>>
<label class="switch" for="web_zamknuty"></label>
</div>
<div style="display:flex;gap:10px;margin-top:24px;">
<button type="submit" class="btn btn-primary">Uložit</button>
</div>
</form>
<?php endif; ?>
<?php admin_layout_end(); ?>