403Webshell
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/jservices_cz/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /volume1/web/jservices_cz/admin.php
<?php
declare(strict_types=1);

require_once __DIR__ . '/config.php';
vyzaduj_prihlaseni();

// --- Zpracování akcí ---
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $akce = (string) ($_POST['akce'] ?? '');

    if ($akce === 'pridat_recenzi') {
        $stmt = $pdo->prepare(
            'INSERT INTO recenze (jmeno, text, hodnoceni, datum_recenze, zdroj, viditelna) VALUES (:j, :t, :h, :d, :z, :v)'
        );
        $stmt->execute([
            'j' => trim((string) ($_POST['jmeno'] ?? '')),
            't' => trim((string) ($_POST['text'] ?? '')),
            'h' => max(1, min(5, (int) ($_POST['hodnoceni'] ?? 5))),
            'd' => trim((string) ($_POST['datum_recenze'] ?? '')) !== '' ? $_POST['datum_recenze'] : date('Y-m-d'),
            'z' => in_array($_POST['zdroj'] ?? '', ['facebook', 'google', 'rucne'], true) ? $_POST['zdroj'] : 'rucne',
            'v' => isset($_POST['viditelna']) ? 1 : 0,
        ]);
        header('Location: admin.php?sekce=recenze');
        exit;
    }

    if ($akce === 'upravit_recenzi') {
        $stmt = $pdo->prepare(
            'UPDATE recenze SET jmeno = :j, text = :t, hodnoceni = :h, datum_recenze = :d, zdroj = :z WHERE id = :id'
        );
        $stmt->execute([
            'j'  => trim((string) ($_POST['jmeno'] ?? '')),
            't'  => trim((string) ($_POST['text'] ?? '')),
            'h'  => max(1, min(5, (int) ($_POST['hodnoceni'] ?? 5))),
            'd'  => trim((string) ($_POST['datum_recenze'] ?? '')) !== '' ? $_POST['datum_recenze'] : date('Y-m-d'),
            'z'  => in_array($_POST['zdroj'] ?? '', ['facebook', 'google', 'rucne'], true) ? $_POST['zdroj'] : 'rucne',
            'id' => (int) ($_POST['id'] ?? 0),
        ]);
        header('Location: admin.php?sekce=recenze');
        exit;
    }

    if ($akce === 'prepnout_viditelnost_recenze') {
        $stmt = $pdo->prepare('UPDATE recenze SET viditelna = 1 - viditelna WHERE id = :id');
        $stmt->execute(['id' => (int) ($_POST['id'] ?? 0)]);
        header('Location: admin.php?sekce=recenze');
        exit;
    }

    if ($akce === 'smazat_recenzi') {
        $stmt = $pdo->prepare('DELETE FROM recenze WHERE id = :id');
        $stmt->execute(['id' => (int) ($_POST['id'] ?? 0)]);
        header('Location: admin.php?sekce=recenze');
        exit;
    }

    if ($akce === 'oznacit_poptavku') {
        $stmt = $pdo->prepare('UPDATE poptavky SET precteno = 1 WHERE id = :id');
        $stmt->execute(['id' => (int) ($_POST['id'] ?? 0)]);
        header('Location: admin.php?sekce=poptavky');
        exit;
    }

    if ($akce === 'oznacit_vse_precteno') {
        $pdo->exec('UPDATE poptavky SET precteno = 1 WHERE precteno = 0');
        header('Location: admin.php?sekce=poptavky');
        exit;
    }

    if ($akce === 'smazat_poptavku') {
        $stmt = $pdo->prepare('DELETE FROM poptavky WHERE id = :id');
        $stmt->execute(['id' => (int) ($_POST['id'] ?? 0)]);
        header('Location: admin.php?sekce=poptavky');
        exit;
    }

    if ($akce === 'spustit_zalohu') {
        $php    = '/var/packages/PHP8.2/target/usr/local/bin/php82';
        $skript = __DIR__ . '/backup.php';
        $log    = '/volume1/web/_ADMIN/auto_backup/backup_last.log';

        if (isset($_POST['stahni'])) {
            // Synchronní – stáhnout ZIP (může trvat déle, ale uživatel čeká)
            $zipSoubor = require __DIR__ . '/backup.php';
            if ($zipSoubor && file_exists($zipSoubor)) {
                header('Content-Type: application/zip');
                header('Content-Disposition: attachment; filename="' . basename($zipSoubor) . '"');
                header('Content-Length: ' . filesize($zipSoubor));
                readfile($zipSoubor);
                exit;
            }
        } else {
            // Asynchronní – spustí zálohu na pozadí, okamžitě přesměruje
            $prikaz = sprintf('%s %s > %s 2>&1 &',
                escapeshellarg($php),
                escapeshellarg($skript),
                escapeshellarg($log)
            );
            exec($prikaz);
        }

        header('Location: admin.php?sekce=nastaveni&zaloha=ok');
        exit;
    }

    if ($akce === 'ulozit_favicon') {
        if (!empty($_FILES['favicon']['name'])) {
            $stara = nacti_nastaveni($pdo, 'favicon_soubor', '');
            $nova  = zpracuj_nahrani_obrazku($_FILES['favicon'], 'favicon', 64, 64);
            if ($nova !== '') {
                smaz_soubor_obrazku($stara);
                ulozit_nastaveni($pdo, 'favicon_soubor', $nova);
            }
        }
        header('Location: admin.php?sekce=nastaveni&ulozeno=1');
        exit;
    }

    if ($akce === 'pridat_polozku_menu') {
        $nadrazena = trim((string) ($_POST['nadrazena_id'] ?? ''));
        $ikonaSoubor = '';
        if (!empty($_FILES['ikona_soubor']['name'])) {
            $ikonaSoubor = zpracuj_nahrani_obrazku($_FILES['ikona_soubor'], 'menu', 32, 32);
        }
        $stmt = $pdo->prepare(
            'INSERT INTO menu_polozky (nadrazena_id, text, url, ikona_soubor, poradi, pozice, viditelna) VALUES (:n, :t, :u, :i, :r, :pz, :v)'
        );
        $stmt->execute([
            'n'  => $nadrazena !== '' ? (int) $nadrazena : null,
            't'  => trim((string) ($_POST['text'] ?? '')),
            'u'  => trim((string) ($_POST['url'] ?? '')) !== '' ? trim((string) $_POST['url']) : null,
            'i'  => $ikonaSoubor !== '' ? $ikonaSoubor : null,
            'r'  => (int) ($_POST['poradi'] ?? 0),
            'pz' => $_POST['pozice'] ?? 'hlavni',
            'v'  => isset($_POST['viditelna']) ? 1 : 0,
        ]);
        header('Location: admin.php?sekce=menu');
        exit;
    }

    if ($akce === 'upravit_polozku_menu') {
        $nadrazena   = trim((string) ($_POST['nadrazena_id'] ?? ''));
        $id          = (int) ($_POST['id'] ?? 0);
        $stmtStar    = $pdo->prepare('SELECT ikona_soubor FROM menu_polozky WHERE id = :id');
        $stmtStar->execute(['id' => $id]);
        $staraIkona  = (string) ($stmtStar->fetchColumn() ?? '');
        $ikonaSoubor = $staraIkona;

        if (!empty($_FILES['ikona_soubor']['name'])) {
            $nova = zpracuj_nahrani_obrazku($_FILES['ikona_soubor'], 'menu', 32, 32);
            if ($nova !== '') {
                smaz_soubor_obrazku($staraIkona);
                $ikonaSoubor = $nova;
            }
        }
        if (isset($_POST['smazat_ikonu']) && $_POST['smazat_ikonu'] === '1') {
            smaz_soubor_obrazku($staraIkona);
            $ikonaSoubor = '';
        }

        $stmt = $pdo->prepare(
            'UPDATE menu_polozky SET nadrazena_id = :n, text = :t, url = :u, ikona_soubor = :i, poradi = :r, pozice = :pz WHERE id = :id'
        );
        $stmt->execute([
            'n'  => $nadrazena !== '' ? (int) $nadrazena : null,
            't'  => trim((string) ($_POST['text'] ?? '')),
            'u'  => trim((string) ($_POST['url'] ?? '')) !== '' ? trim((string) $_POST['url']) : null,
            'i'  => $ikonaSoubor !== '' ? $ikonaSoubor : null,
            'r'  => (int) ($_POST['poradi'] ?? 0),
            'pz' => $_POST['pozice'] ?? 'hlavni',
            'id' => $id,
        ]);
        header('Location: admin.php?sekce=menu');
        exit;
    }

    if ($akce === 'prepnout_viditelnost_menu') {
        $stmt = $pdo->prepare('UPDATE menu_polozky SET viditelna = 1 - viditelna WHERE id = :id');
        $stmt->execute(['id' => (int) ($_POST['id'] ?? 0)]);
        header('Location: admin.php?sekce=menu');
        exit;
    }

    if ($akce === 'smazat_polozku_menu') {
        $id = (int) ($_POST['id'] ?? 0);
        // smaže i případné podpoložky (např. Windows/Mac pod AnyDesk)
        $stmtDeti = $pdo->prepare('DELETE FROM menu_polozky WHERE nadrazena_id = :id');
        $stmtDeti->execute(['id' => $id]);
        $stmt = $pdo->prepare('DELETE FROM menu_polozky WHERE id = :id');
        $stmt->execute(['id' => $id]);
        header('Location: admin.php?sekce=menu');
        exit;
    }

    if ($akce === 'pridat_fakturacni_kontakt') {
        $stmt = $pdo->prepare(
            'INSERT INTO fakturacni_kontakty (jmeno, prijmeni, adresa, ico, dic, telefon, email, platce_dph, poznamka, poradi, viditelny)
             VALUES (:jm, :pr, :ad, :ic, :di, :te, :em, :pd, :pz, :po, :vi)'
        );
        $stmt->execute([
            'jm' => trim((string) ($_POST['jmeno'] ?? '')),
            'pr' => trim((string) ($_POST['prijmeni'] ?? '')),
            'ad' => trim((string) ($_POST['adresa'] ?? '')),
            'ic' => trim((string) ($_POST['ico'] ?? '')),
            'di' => trim((string) ($_POST['dic'] ?? '')),
            'te' => trim((string) ($_POST['telefon'] ?? '')),
            'em' => trim((string) ($_POST['email'] ?? '')),
            'pd' => isset($_POST['platce_dph']) ? 1 : 0,
            'pz' => trim((string) ($_POST['poznamka'] ?? '')),
            'po' => (int) ($_POST['poradi'] ?? 0),
            'vi' => isset($_POST['viditelny']) ? 1 : 0,
        ]);
        header('Location: admin.php?sekce=kontakty');
        exit;
    }

    if ($akce === 'upravit_fakturacni_kontakt') {
        $stmt = $pdo->prepare(
            'UPDATE fakturacni_kontakty SET jmeno = :jm, prijmeni = :pr, adresa = :ad, ico = :ic,
             dic = :di, telefon = :te, email = :em, platce_dph = :pd, poznamka = :pz, poradi = :po WHERE id = :id'
        );
        $stmt->execute([
            'jm' => trim((string) ($_POST['jmeno'] ?? '')),
            'pr' => trim((string) ($_POST['prijmeni'] ?? '')),
            'ad' => trim((string) ($_POST['adresa'] ?? '')),
            'ic' => trim((string) ($_POST['ico'] ?? '')),
            'di' => trim((string) ($_POST['dic'] ?? '')),
            'te' => trim((string) ($_POST['telefon'] ?? '')),
            'em' => trim((string) ($_POST['email'] ?? '')),
            'pd' => isset($_POST['platce_dph']) ? 1 : 0,
            'pz' => trim((string) ($_POST['poznamka'] ?? '')),
            'po' => (int) ($_POST['poradi'] ?? 0),
            'id' => (int) ($_POST['id'] ?? 0),
        ]);
        header('Location: admin.php?sekce=kontakty');
        exit;
    }

    if ($akce === 'prepnout_viditelnost_kontaktu') {
        $stmt = $pdo->prepare('UPDATE fakturacni_kontakty SET viditelny = 1 - viditelny WHERE id = :id');
        $stmt->execute(['id' => (int) ($_POST['id'] ?? 0)]);
        header('Location: admin.php?sekce=kontakty');
        exit;
    }

    if ($akce === 'smazat_fakturacni_kontakt') {
        $stmt = $pdo->prepare('DELETE FROM fakturacni_kontakty WHERE id = :id');
        $stmt->execute(['id' => (int) ($_POST['id'] ?? 0)]);
        header('Location: admin.php?sekce=kontakty');
        exit;
    }

    if ($akce === 'pridat_spotlight') {
        $stmt = $pdo->prepare(
            'INSERT INTO spotlight (nadpis, popis, vyhoda1, vyhoda2, vyhoda3, stitek, poradi, viditelna)
             VALUES (:na, :po, :v1, :v2, :v3, :st, :pr, :vi)'
        );
        $stmt->execute([
            'na' => trim((string) ($_POST['nadpis'] ?? '')),
            'po' => trim((string) ($_POST['popis'] ?? '')),
            'v1' => trim((string) ($_POST['vyhoda1'] ?? '')),
            'v2' => trim((string) ($_POST['vyhoda2'] ?? '')),
            'v3' => trim((string) ($_POST['vyhoda3'] ?? '')),
            'st' => trim((string) ($_POST['stitek'] ?? '')),
            'pr' => (int) ($_POST['poradi'] ?? 0),
            'vi' => isset($_POST['viditelna']) ? 1 : 0,
        ]);
        header('Location: admin.php?sekce=spotlight');
        exit;
    }

    if ($akce === 'upravit_spotlight') {
        $stmt = $pdo->prepare(
            'UPDATE spotlight SET nadpis = :na, popis = :po, vyhoda1 = :v1, vyhoda2 = :v2,
             vyhoda3 = :v3, stitek = :st, poradi = :pr WHERE id = :id'
        );
        $stmt->execute([
            'na' => trim((string) ($_POST['nadpis'] ?? '')),
            'po' => trim((string) ($_POST['popis'] ?? '')),
            'v1' => trim((string) ($_POST['vyhoda1'] ?? '')),
            'v2' => trim((string) ($_POST['vyhoda2'] ?? '')),
            'v3' => trim((string) ($_POST['vyhoda3'] ?? '')),
            'st' => trim((string) ($_POST['stitek'] ?? '')),
            'pr' => (int) ($_POST['poradi'] ?? 0),
            'id' => (int) ($_POST['id'] ?? 0),
        ]);
        header('Location: admin.php?sekce=spotlight');
        exit;
    }

    if ($akce === 'prepnout_viditelnost_spotlight') {
        $stmt = $pdo->prepare('UPDATE spotlight SET viditelna = 1 - viditelna WHERE id = :id');
        $stmt->execute(['id' => (int) ($_POST['id'] ?? 0)]);
        header('Location: admin.php?sekce=spotlight');
        exit;
    }

    if ($akce === 'smazat_spotlight') {
        $stmt = $pdo->prepare('DELETE FROM spotlight WHERE id = :id');
        $stmt->execute(['id' => (int) ($_POST['id'] ?? 0)]);
        header('Location: admin.php?sekce=spotlight');
        exit;
    }

    if ($akce === 'pridat_statistiku') {
        $stmt = $pdo->prepare(
            'INSERT INTO statistiky (popisek, hodnota, poradi, viditelna) VALUES (:p, :h, :r, :v)'
        );
        $stmt->execute([
            'p' => trim((string) ($_POST['popisek'] ?? '')),
            'h' => trim((string) ($_POST['hodnota'] ?? '')),
            'r' => (int) ($_POST['poradi'] ?? 0),
            'v' => isset($_POST['viditelna']) ? 1 : 0,
        ]);
        header('Location: admin.php?sekce=statistiky');
        exit;
    }

    if ($akce === 'upravit_statistiku') {
        $stmt = $pdo->prepare(
            'UPDATE statistiky SET popisek = :p, hodnota = :h, poradi = :r WHERE id = :id'
        );
        $stmt->execute([
            'p'  => trim((string) ($_POST['popisek'] ?? '')),
            'h'  => trim((string) ($_POST['hodnota'] ?? '')),
            'r'  => (int) ($_POST['poradi'] ?? 0),
            'id' => (int) ($_POST['id'] ?? 0),
        ]);
        header('Location: admin.php?sekce=statistiky');
        exit;
    }

    if ($akce === 'prepnout_viditelnost_statistiky') {
        $stmt = $pdo->prepare('UPDATE statistiky SET viditelna = 1 - viditelna WHERE id = :id');
        $stmt->execute(['id' => (int) ($_POST['id'] ?? 0)]);
        header('Location: admin.php?sekce=statistiky');
        exit;
    }

    if ($akce === 'smazat_statistiku') {
        $stmt = $pdo->prepare('DELETE FROM statistiky WHERE id = :id');
        $stmt->execute(['id' => (int) ($_POST['id'] ?? 0)]);
        header('Location: admin.php?sekce=statistiky');
        exit;
    }

    if ($akce === 'pridat_proc_my') {
        $stmt = $pdo->prepare(
            'INSERT INTO proc_my (tucna_cast, zbytek_vety, ikona, poradi, viditelna) VALUES (:t, :z, :i, :p, :v)'
        );
        $stmt->execute([
            't' => trim((string) ($_POST['tucna_cast'] ?? '')),
            'z' => trim((string) ($_POST['zbytek_vety'] ?? '')),
            'i' => array_key_exists($_POST['ikona'] ?? '', seznam_ikon_sluzeb()) ? $_POST['ikona'] : 'check',
            'p' => (int) ($_POST['poradi'] ?? 0),
            'v' => isset($_POST['viditelna']) ? 1 : 0,
        ]);
        header('Location: admin.php?sekce=procmy');
        exit;
    }

    if ($akce === 'upravit_proc_my') {
        $stmt = $pdo->prepare(
            'UPDATE proc_my SET tucna_cast = :t, zbytek_vety = :z, ikona = :i, poradi = :p WHERE id = :id'
        );
        $stmt->execute([
            't'  => trim((string) ($_POST['tucna_cast'] ?? '')),
            'z'  => trim((string) ($_POST['zbytek_vety'] ?? '')),
            'i'  => array_key_exists($_POST['ikona'] ?? '', seznam_ikon_sluzeb()) ? $_POST['ikona'] : 'check',
            'p'  => (int) ($_POST['poradi'] ?? 0),
            'id' => (int) ($_POST['id'] ?? 0),
        ]);
        header('Location: admin.php?sekce=procmy');
        exit;
    }

    if ($akce === 'prepnout_viditelnost_proc_my') {
        $stmt = $pdo->prepare('UPDATE proc_my SET viditelna = 1 - viditelna WHERE id = :id');
        $stmt->execute(['id' => (int) ($_POST['id'] ?? 0)]);
        header('Location: admin.php?sekce=procmy');
        exit;
    }

    if ($akce === 'smazat_proc_my') {
        $stmt = $pdo->prepare('DELETE FROM proc_my WHERE id = :id');
        $stmt->execute(['id' => (int) ($_POST['id'] ?? 0)]);
        header('Location: admin.php?sekce=procmy');
        exit;
    }

    if ($akce === 'ulozit_obsah') {
        $platneKlice = array_keys(definice_obsahu());
        foreach ($platneKlice as $klic) {
            if (array_key_exists($klic, $_POST)) {
                ulozit_nastaveni($pdo, $klic, trim((string) $_POST[$klic]));
            }
        }
        $cast = (string) ($_POST['cast'] ?? '');
        header('Location: admin.php?sekce=obsah&cast=' . urlencode($cast) . '&ulozeno=1');
        exit;
    }

    if ($akce === 'pridat_sluzbu') {
        $stmt = $pdo->prepare(
            'INSERT INTO sluzby (nazev, popis, ikona, poradi, viditelna) VALUES (:n, :p, :i, :r, :v)'
        );
        $stmt->execute([
            'n' => trim((string) ($_POST['nazev'] ?? '')),
            'p' => trim((string) ($_POST['popis'] ?? '')),
            'i' => array_key_exists($_POST['ikona'] ?? '', seznam_ikon_sluzeb()) ? $_POST['ikona'] : 'code',
            'r' => (int) ($_POST['poradi'] ?? 0),
            'v' => isset($_POST['viditelna']) ? 1 : 0,
        ]);
        header('Location: admin.php?sekce=sluzby');
        exit;
    }

    if ($akce === 'upravit_sluzbu') {
        $stmt = $pdo->prepare(
            'UPDATE sluzby SET nazev = :n, popis = :p, ikona = :i, poradi = :r WHERE id = :id'
        );
        $stmt->execute([
            'n'  => trim((string) ($_POST['nazev'] ?? '')),
            'p'  => trim((string) ($_POST['popis'] ?? '')),
            'i'  => array_key_exists($_POST['ikona'] ?? '', seznam_ikon_sluzeb()) ? $_POST['ikona'] : 'code',
            'r'  => (int) ($_POST['poradi'] ?? 0),
            'id' => (int) ($_POST['id'] ?? 0),
        ]);
        header('Location: admin.php?sekce=sluzby');
        exit;
    }

    if ($akce === 'prepnout_viditelnost_sluzby') {
        $stmt = $pdo->prepare('UPDATE sluzby SET viditelna = 1 - viditelna WHERE id = :id');
        $stmt->execute(['id' => (int) ($_POST['id'] ?? 0)]);
        header('Location: admin.php?sekce=sluzby');
        exit;
    }

    if ($akce === 'smazat_sluzbu') {
        $stmt = $pdo->prepare('DELETE FROM sluzby WHERE id = :id');
        $stmt->execute(['id' => (int) ($_POST['id'] ?? 0)]);
        header('Location: admin.php?sekce=sluzby');
        exit;
    }

    if ($akce === 'ulozit_nastaveni') {
        ulozit_nastaveni($pdo, 'telefon', trim((string) ($_POST['telefon'] ?? '')));
        ulozit_nastaveni($pdo, 'email', trim((string) ($_POST['email'] ?? '')));
        ulozit_nastaveni($pdo, 'adresa', trim((string) ($_POST['adresa'] ?? '')));
        ulozit_nastaveni($pdo, 'facebook_url', trim((string) ($_POST['facebook_url'] ?? '')));
        ulozit_nastaveni($pdo, 'instagram_url', trim((string) ($_POST['instagram_url'] ?? '')));
        ulozit_nastaveni($pdo, 'udrzba_aktivni', isset($_POST['udrzba_aktivni']) ? '1' : '0');

        $noveHeslo = trim((string) ($_POST['udrzba_heslo'] ?? ''));
        if ($noveHeslo !== '') {
            ulozit_nastaveni($pdo, 'udrzba_heslo_hash', password_hash($noveHeslo, PASSWORD_DEFAULT));
        }

        header('Location: admin.php?sekce=nastaveni&ulozeno=1');
        exit;
    }
}

$sekce = in_array($_GET['sekce'] ?? '', ['recenze', 'poptavky', 'nastaveni', 'obsah', 'sluzby', 'menu', 'kontakty', 'procmy', 'statistiky', 'spotlight'], true)
    ? $_GET['sekce']
    : 'obsah';

$vsechnyRecenze  = $pdo->query('SELECT * FROM recenze ORDER BY datum_recenze DESC, poradi ASC')->fetchAll();
$vsechnyPoptavky = $pdo->query('SELECT * FROM poptavky ORDER BY vytvoreno DESC')->fetchAll();
$vsechnySluzby   = $pdo->query('SELECT * FROM sluzby ORDER BY poradi ASC, id ASC')->fetchAll();
$vsechnyPolozkyMenu = $pdo->query('SELECT * FROM menu_polozky ORDER BY poradi ASC, id ASC')->fetchAll();
$vsechnyKontakty = $pdo->query('SELECT * FROM fakturacni_kontakty ORDER BY poradi ASC, id ASC')->fetchAll();
$vsechnyProcMy   = $pdo->query('SELECT * FROM proc_my ORDER BY poradi ASC, id ASC')->fetchAll();
$vsechnyStatistiky = $pdo->query('SELECT * FROM statistiky ORDER BY poradi ASC, id ASC')->fetchAll();
$vsechnySpotlight  = $pdo->query('SELECT * FROM spotlight ORDER BY poradi ASC, id ASC')->fetchAll();
$nastaveni         = nacti_vsechna_nastaveni($pdo);

$upravovanySpotlight = null;
if (isset($_GET['upravit_spotlight'])) {
    $idUpravy = (int) $_GET['upravit_spotlight'];
    foreach ($vsechnySpotlight as $sp) {
        if ((int) $sp['id'] === $idUpravy) {
            $upravovanySpotlight = $sp;
            break;
        }
    }
}

$upravovanaStatistika = null;
if (isset($_GET['upravit_statistiku'])) {
    $idUpravy = (int) $_GET['upravit_statistiku'];
    foreach ($vsechnyStatistiky as $s) {
        if ((int) $s['id'] === $idUpravy) {
            $upravovanaStatistika = $s;
            break;
        }
    }
}

$upravovanyProcMy = null;
if (isset($_GET['upravit_proc_my'])) {
    $idUpravy = (int) $_GET['upravit_proc_my'];
    foreach ($vsechnyProcMy as $pm) {
        if ((int) $pm['id'] === $idUpravy) {
            $upravovanyProcMy = $pm;
            break;
        }
    }
}

$hlavniPolozkyMenu = array_filter($vsechnyPolozkyMenu, fn($p) => $p['nadrazena_id'] === null);

$upravovanaPolozkaMenu = null;
if (isset($_GET['upravit_polozku'])) {
    $idUpravy = (int) $_GET['upravit_polozku'];
    foreach ($vsechnyPolozkyMenu as $p) {
        if ((int) $p['id'] === $idUpravy) {
            $upravovanaPolozkaMenu = $p;
            break;
        }
    }
}

$upravovanyKontakt = null;
if (isset($_GET['upravit_kontakt'])) {
    $idUpravy = (int) $_GET['upravit_kontakt'];
    foreach ($vsechnyKontakty as $k) {
        if ((int) $k['id'] === $idUpravy) {
            $upravovanyKontakt = $k;
            break;
        }
    }
}

$upravovanaSluzba = null;
if (isset($_GET['upravit_sluzbu'])) {
    $idUpravy = (int) $_GET['upravit_sluzbu'];
    foreach ($vsechnySluzby as $s) {
        if ((int) $s['id'] === $idUpravy) {
            $upravovanaSluzba = $s;
            break;
        }
    }
}

$pocetNeprectenych = 0;
foreach ($vsechnyPoptavky as $p) {
    if ((int) $p['precteno'] === 0) {
        $pocetNeprectenych++;
    }
}

// Recenze v editaci (pokud je v URL ?upravit=ID)
$upravovanaRecenze = null;
if (isset($_GET['upravit'])) {
    $idUpravy = (int) $_GET['upravit'];
    foreach ($vsechnyRecenze as $r) {
        if ((int) $r['id'] === $idUpravy) {
            $upravovanaRecenze = $r;
            break;
        }
    }
}

$nazvyZdroju = ['facebook' => 'Facebook', 'google' => 'Google', 'rucne' => 'Ručně'];
?>
<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex, nofollow">
<title>Administrace | J Services</title>
<link rel="stylesheet" href="assets/css/admin.css">
<script>
function initIkonaSelect(selectId, hodnotaId, dropdownId) {
    var select   = document.getElementById(selectId);
    if (!select) return;
    var hodnota  = document.getElementById('ikona-select-hodnota-' + hodnotaId);
    var dropdown = document.getElementById('ikona-select-dropdown-' + dropdownId);
    var hidden   = document.getElementById('ikona-hidden-' + hodnotaId);

    hodnota.addEventListener('click', function (e) {
        e.stopPropagation();
        dropdown.style.display = dropdown.style.display === 'none' ? 'block' : 'none';
    });

    dropdown.querySelectorAll('.ikona-select-polozka').forEach(function (polozka) {
        polozka.addEventListener('click', function () {
            var val   = polozka.dataset.value;
            var ikSvg = polozka.querySelector('.ikona-select-ikona').innerHTML;
            var text  = polozka.querySelectorAll('span')[1].textContent;
            hidden.value = val;
            hodnota.querySelector('.ikona-select-ikona').innerHTML = ikSvg;
            hodnota.querySelector('.ikona-select-text').textContent = text;
            dropdown.querySelectorAll('.ikona-select-polozka').forEach(function (p) { p.classList.remove('aktivni'); });
            polozka.classList.add('aktivni');
            dropdown.style.display = 'none';
        });
    });

    document.addEventListener('click', function () { dropdown.style.display = 'none'; });
}

document.addEventListener('DOMContentLoaded', function () {
    initIkonaSelect('ikona-select', '', '');
    initIkonaSelect('ikona-select-pm', 'pm', 'pm');
});
</script>
</head>
<body>

<header class="admin-hlavicka">
    <div class="logo">J Services – administrace</div>
    <div>
        <a href="index.php" target="_blank" class="btn btn-sm">Zobrazit web</a>
        <a href="logout.php" class="btn btn-sm">Odhlásit se</a>
    </div>
</header>

<nav class="admin-taby">
    <a href="admin.php?sekce=obsah" class="<?= $sekce === 'obsah' ? 'aktivni' : '' ?>">Obsah webu</a>
    <a href="admin.php?sekce=statistiky" class="<?= $sekce === 'statistiky' ? 'aktivni' : '' ?>">Statistiky</a>
    <a href="admin.php?sekce=spotlight" class="<?= $sekce === 'spotlight' ? 'aktivni' : '' ?>">Novinky</a>
    <a href="admin.php?sekce=sluzby" class="<?= $sekce === 'sluzby' ? 'aktivni' : '' ?>">Služby</a>
    <a href="admin.php?sekce=procmy" class="<?= $sekce === 'procmy' ? 'aktivni' : '' ?>">Proč my</a>
    <a href="admin.php?sekce=recenze" class="<?= $sekce === 'recenze' ? 'aktivni' : '' ?>">Reference</a>
    <a href="admin.php?sekce=poptavky" class="<?= $sekce === 'poptavky' ? 'aktivni' : '' ?>">
        Poptávky<?php if ($pocetNeprectenych > 0): ?><span class="znacka"><?= $pocetNeprectenych ?></span><?php endif; ?>
    </a>
    <a href="admin.php?sekce=kontakty" class="<?= $sekce === 'kontakty' ? 'aktivni' : '' ?>">Fakt. kontakty</a>
    <a href="admin.php?sekce=nastaveni" class="<?= $sekce === 'nastaveni' ? 'aktivni' : '' ?>">Nastavení</a>
    <a href="admin.php?sekce=menu" class="<?= $sekce === 'menu' ? 'aktivni' : '' ?>">Menu</a>
</nav>

<div class="admin-obsah">

<?php if ($sekce === 'recenze'): ?>

    <div class="karta">
        <h2 style="margin-bottom:16px;"><?= $upravovanaRecenze ? 'Upravit recenzi' : 'Přidat recenzi' ?></h2>
        <form method="post">
            <input type="hidden" name="akce" value="<?= $upravovanaRecenze ? 'upravit_recenzi' : 'pridat_recenzi' ?>">
            <?php if ($upravovanaRecenze): ?>
                <input type="hidden" name="id" value="<?= (int) $upravovanaRecenze['id'] ?>">
            <?php endif; ?>

            <label for="jmeno">Jméno</label>
            <input type="text" id="jmeno" name="jmeno" required value="<?= e($upravovanaRecenze['jmeno'] ?? '') ?>">

            <label for="text">Text recenze</label>
            <textarea id="text" name="text" required><?= e($upravovanaRecenze['text'] ?? '') ?></textarea>

            <label for="hodnoceni">Hodnocení (1–5)</label>
            <input type="number" id="hodnoceni" name="hodnoceni" min="1" max="5" value="<?= (int) ($upravovanaRecenze['hodnoceni'] ?? 5) ?>">

            <label for="datum_recenze">Datum reference</label>
            <input type="date" id="datum_recenze" name="datum_recenze" value="<?= e($upravovanaRecenze['datum_recenze'] ?? date('Y-m-d')) ?>">

            <label for="zdroj">Zdroj</label>
            <select id="zdroj" name="zdroj">
                <?php foreach ($nazvyZdroju as $klic => $nazev): ?>
                    <option value="<?= e($klic) ?>" <?= ($upravovanaRecenze['zdroj'] ?? 'rucne') === $klic ? 'selected' : '' ?>><?= e($nazev) ?></option>
                <?php endforeach; ?>
            </select>

            <?php if (!$upravovanaRecenze): ?>
                <div class="checkbox-radek">
                    <input type="checkbox" id="viditelna" name="viditelna" checked>
                    <label for="viditelna">Zobrazit na webu hned</label>
                </div>
            <?php endif; ?>

            <button type="submit" class="btn btn-primary"><?= $upravovanaRecenze ? 'Uložit změny' : 'Přidat recenzi' ?></button>
            <?php if ($upravovanaRecenze): ?>
                <a href="admin.php?sekce=recenze" class="btn">Zrušit</a>
            <?php endif; ?>
        </form>
    </div>

    <div class="karta">
        <h2 style="margin-bottom:16px;">Všechny recenze (<?= count($vsechnyRecenze) ?>)</h2>
        <?php if (count($vsechnyRecenze) === 0): ?>
            <p style="color:var(--text-secondary);">Zatím žádné recenze.</p>
        <?php else: ?>
        <table>
            <thead>
                <tr><th>Jméno</th><th>Text</th><th>Hodn.</th><th>Datum</th><th>Zdroj</th><th>Stav</th><th>Akce</th></tr>
            </thead>
            <tbody>
                <?php foreach ($vsechnyRecenze as $r): ?>
                <tr>
                    <td><?= e($r['jmeno']) ?></td>
                    <td class="text-zkraceny"><?= e($r['text']) ?></td>
                    <td><?= (int) $r['hodnoceni'] ?>/5</td>
                    <td><?= e(date('j. n. Y', strtotime((string) $r['datum_recenze']))) ?></td>
                    <td><?= e($nazvyZdroju[$r['zdroj']] ?? $r['zdroj']) ?></td>
                    <td>
                        <?php if ((int) $r['viditelna'] === 1): ?>
                            <span class="stitek stitek-viditelna">viditelná</span>
                        <?php else: ?>
                            <span class="stitek stitek-skryta">skrytá</span>
                        <?php endif; ?>
                    </td>
                    <td class="akce-bunka">
                        <a href="admin.php?sekce=recenze&upravit=<?= (int) $r['id'] ?>" class="btn btn-sm">Upravit</a>
                        <form method="post" style="display:inline;">
                            <input type="hidden" name="akce" value="prepnout_viditelnost_recenze">
                            <input type="hidden" name="id" value="<?= (int) $r['id'] ?>">
                            <button type="submit" class="btn btn-sm"><?= (int) $r['viditelna'] === 1 ? 'Skrýt' : 'Zobrazit' ?></button>
                        </form>
                        <form method="post" style="display:inline;" onsubmit="return confirm('Opravdu smazat tuto recenzi?');">
                            <input type="hidden" name="akce" value="smazat_recenzi">
                            <input type="hidden" name="id" value="<?= (int) $r['id'] ?>">
                            <button type="submit" class="btn btn-sm btn-danger">Smazat</button>
                        </form>
                    </td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
        <?php endif; ?>
    </div>

<?php elseif ($sekce === 'sluzby'): ?>

    <div class="karta">
        <h2 style="margin-bottom:16px;"><?= $upravovanaSluzba ? 'Upravit službu' : 'Přidat službu' ?></h2>
        <form method="post">
            <input type="hidden" name="akce" value="<?= $upravovanaSluzba ? 'upravit_sluzbu' : 'pridat_sluzbu' ?>">
            <?php if ($upravovanaSluzba): ?>
                <input type="hidden" name="id" value="<?= (int) $upravovanaSluzba['id'] ?>">
            <?php endif; ?>

            <label for="nazev">Název</label>
            <input type="text" id="nazev" name="nazev" required value="<?= e($upravovanaSluzba['nazev'] ?? '') ?>">

            <label for="popis">Krátký popis</label>
            <input type="text" id="popis" name="popis" required value="<?= e($upravovanaSluzba['popis'] ?? '') ?>">

            <label>Ikona</label>
            <?php $aktIkonaSluzby = $upravovanaSluzba['ikona'] ?? 'code'; ?>
            <div class="ikona-select" id="ikona-select">
                <div class="ikona-select-hodnota" id="ikona-select-hodnota">
                    <span class="ikona-select-ikona"><?= icon($aktIkonaSluzby, 18) ?></span>
                    <span class="ikona-select-text"><?= e(seznam_ikon_sluzeb()[$aktIkonaSluzby] ?? $aktIkonaSluzby) ?></span>
                    <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" style="margin-left:auto;" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
                </div>
                <div class="ikona-select-dropdown" id="ikona-select-dropdown" style="display:none;">
                    <?php foreach (seznam_ikon_sluzeb() as $klicIkony => $popisekIkony): ?>
                    <div class="ikona-select-polozka <?= $aktIkonaSluzby === $klicIkony ? 'aktivni' : '' ?>" data-value="<?= e($klicIkony) ?>">
                        <span class="ikona-select-ikona"><?= icon($klicIkony, 18) ?></span>
                        <span><?= e($popisekIkony) ?></span>
                    </div>
                    <?php endforeach; ?>
                </div>
            </div>
            <input type="hidden" name="ikona" id="ikona-hidden" value="<?= e($aktIkonaSluzby) ?>">

            <label for="poradi">Pořadí (menší číslo = výš)</label>
            <input type="number" id="poradi" name="poradi" min="0" value="<?= (int) ($upravovanaSluzba['poradi'] ?? (count($vsechnySluzby) + 1)) ?>">

            <?php if (!$upravovanaSluzba): ?>
                <div class="checkbox-radek">
                    <input type="checkbox" id="viditelna_sluzba" name="viditelna" checked>
                    <label for="viditelna_sluzba">Zobrazit na webu hned</label>
                </div>
            <?php endif; ?>

            <button type="submit" class="btn btn-primary"><?= $upravovanaSluzba ? 'Uložit změny' : 'Přidat službu' ?></button>
            <?php if ($upravovanaSluzba): ?>
                <a href="admin.php?sekce=sluzby" class="btn">Zrušit</a>
            <?php endif; ?>
        </form>
    </div>

    <div class="karta">
        <h2 style="margin-bottom:16px;">Všechny služby (<?= count($vsechnySluzby) ?>)</h2>
        <?php if (count($vsechnySluzby) === 0): ?>
            <p style="color:var(--text-secondary);">Zatím žádné služby.</p>
        <?php else: ?>
        <table>
            <thead>
                <tr><th>Pořadí</th><th>Název</th><th>Popis</th><th>Stav</th><th>Akce</th></tr>
            </thead>
            <tbody>
                <?php foreach ($vsechnySluzby as $s): ?>
                <tr>
                    <td><?= (int) $s['poradi'] ?></td>
                    <td><?= e($s['nazev']) ?></td>
                    <td class="text-zkraceny"><?= e($s['popis']) ?></td>
                    <td>
                        <?php if ((int) $s['viditelna'] === 1): ?>
                            <span class="stitek stitek-viditelna">viditelná</span>
                        <?php else: ?>
                            <span class="stitek stitek-skryta">skrytá</span>
                        <?php endif; ?>
                    </td>
                    <td class="akce-bunka">
                        <a href="admin.php?sekce=sluzby&upravit_sluzbu=<?= (int) $s['id'] ?>" class="btn btn-sm">Upravit</a>
                        <form method="post" style="display:inline;">
                            <input type="hidden" name="akce" value="prepnout_viditelnost_sluzby">
                            <input type="hidden" name="id" value="<?= (int) $s['id'] ?>">
                            <button type="submit" class="btn btn-sm"><?= (int) $s['viditelna'] === 1 ? 'Skrýt' : 'Zobrazit' ?></button>
                        </form>
                        <form method="post" style="display:inline;" onsubmit="return confirm('Opravdu smazat tuto službu?');">
                            <input type="hidden" name="akce" value="smazat_sluzbu">
                            <input type="hidden" name="id" value="<?= (int) $s['id'] ?>">
                            <button type="submit" class="btn btn-sm btn-danger">Smazat</button>
                        </form>
                    </td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
        <?php endif; ?>
    </div>

<?php elseif ($sekce === 'poptavky'): ?>

    <div class="karta">
        <div style="display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px;">
            <h2>Poptávky z kontaktního formuláře (<?= count($vsechnyPoptavky) ?>)</h2>
            <?php if ($pocetNeprectenych > 0): ?>
            <form method="post">
                <input type="hidden" name="akce" value="oznacit_vse_precteno">
                <button type="submit" class="btn btn-sm">Označit vše jako přečtené (<?= $pocetNeprectenych ?>)</button>
            </form>
            <?php endif; ?>
        </div>
        <?php if (count($vsechnyPoptavky) === 0): ?>
            <p style="color:var(--text-secondary);">Zatím žádné poptávky.</p>
        <?php else: ?>
        <table>
            <thead>
                <tr><th>Datum</th><th>Jméno</th><th>Kontakt</th><th>Zpráva</th><th>Stav</th><th>Akce</th></tr>
            </thead>
            <tbody>
                <?php foreach ($vsechnyPoptavky as $p): ?>
                <tr>
                    <td><?= e(date('j. n. Y H:i', strtotime((string) $p['vytvoreno']))) ?></td>
                    <td><?= e($p['jmeno']) ?></td>
                    <td>
                        <a href="mailto:<?= e($p['email']) ?>"><?= e($p['email']) ?></a>
                        <?php if (!empty($p['telefon'])): ?><br><?= e($p['telefon']) ?><?php endif; ?>
                    </td>
                    <td class="text-zkraceny"><?= e($p['zprava']) ?></td>
                    <td>
                        <?php if ((int) $p['precteno'] === 0): ?>
                            <span class="stitek stitek-nove">nové</span>
                        <?php else: ?>
                            <span class="stitek stitek-skryta">přečteno</span>
                        <?php endif; ?>
                    </td>
                    <td class="akce-bunka">
                        <?php if ((int) $p['precteno'] === 0): ?>
                        <form method="post" style="display:inline;">
                            <input type="hidden" name="akce" value="oznacit_poptavku">
                            <input type="hidden" name="id" value="<?= (int) $p['id'] ?>">
                            <button type="submit" class="btn btn-sm">Označit přečtené</button>
                        </form>
                        <?php endif; ?>
                        <form method="post" style="display:inline;" onsubmit="return confirm('Opravdu smazat tuto poptávku?');">
                            <input type="hidden" name="akce" value="smazat_poptavku">
                            <input type="hidden" name="id" value="<?= (int) $p['id'] ?>">
                            <button type="submit" class="btn btn-sm btn-danger">Smazat</button>
                        </form>
                    </td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
        <?php endif; ?>
    </div>

<?php elseif ($sekce === 'nastaveni'): ?>

    <div class="karta">
        <h2 style="margin-bottom:16px;">Sociální sítě</h2>
        <?php if (isset($_GET['ulozeno'])): ?>
            <div class="zprava-uspech">Nastavení bylo uloženo.</div>
        <?php endif; ?>
        <form method="post">
            <input type="hidden" name="akce" value="ulozit_nastaveni">

            <label for="facebook_url">Odkaz na Facebook</label>
            <input type="text" id="facebook_url" name="facebook_url" value="<?= e($nastaveni['facebook_url'] ?? '') ?>">

            <label for="instagram_url">Odkaz na Instagram</label>
            <input type="text" id="instagram_url" name="instagram_url" value="<?= e($nastaveni['instagram_url'] ?? '') ?>">

            <hr style="border:none;border-top:0.5px solid var(--border-tertiary);margin:20px 0;">

            <h2 style="margin-bottom:14px;">Zaheslovaný náhled webu</h2>
            <div class="checkbox-radek">
                <input type="checkbox" id="udrzba_aktivni" name="udrzba_aktivni" <?= ($nastaveni['udrzba_aktivni'] ?? '0') === '1' ? 'checked' : '' ?>>
                <label for="udrzba_aktivni">Aktivní (návštěvníci uvidí "stránky se připravují" a musí zadat heslo)</label>
            </div>

            <label for="udrzba_heslo">Heslo pro náhled</label>
            <input type="text" id="udrzba_heslo" name="udrzba_heslo" placeholder="Ponechte prázdné pro zachování stávajícího hesla">

            <button type="submit" class="btn btn-primary">Uložit nastavení</button>
        </form>
    </div>

    <div class="karta">
        <h2 style="margin-bottom:16px;">Favicon (ikonka v záložce prohlížeče)</h2>
        <?php $favicon = nacti_nastaveni($pdo, 'favicon_soubor', ''); ?>
        <?php if ($favicon !== ''): ?>
            <div style="display:flex;align-items:center;gap:12px;margin-bottom:14px;">
                <img src="<?= e($favicon) ?>" alt="Favicon" style="width:32px;height:32px;object-fit:contain;border:0.5px solid var(--border-tertiary);border-radius:4px;padding:4px;">
                <span style="font-size:13px;color:var(--text-secondary);">Aktuální favicon</span>
            </div>
        <?php endif; ?>
        <form method="post" enctype="multipart/form-data">
            <input type="hidden" name="akce" value="ulozit_favicon">
            <label for="favicon">Nahrát nový favicon <span style="color:var(--text-tertiary);font-weight:400;">(PNG, JPG nebo SVG, doporučeno 64×64 px – zmenší se automaticky)</span></label>
            <input type="file" id="favicon" name="favicon" accept="image/*" style="margin-bottom:14px;">
            <button type="submit" class="btn btn-primary">Nahrát favicon</button>
        </form>
    </div>

    <div class="karta">
        <h2 style="margin-bottom:6px;">Záloha webu</h2>
        <p style="font-size:13px;color:var(--text-secondary);margin-bottom:16px;">
            Záloha obsahuje kompletní dump databáze + všechny soubory webu. Uloží se do <code>/volume1/backup/jservices_cz/</code>, ponechá se max. 30 záloh.
        </p>

        <?php if (isset($_GET['zaloha']) && $_GET['zaloha'] === 'ok'): ?>
            <div class="zprava-uspech">Záloha byla spuštěna na pozadí – za chvíli se objeví v seznamu níže.</div>
        <?php endif; ?>

        <?php
        $log = '/volume1/web/_ADMIN/auto_backup/backup_last.log';
        if (file_exists($log) && filesize($log) > 0): ?>
            <div style="background:var(--bg-tertiary);border:0.5px solid var(--border-tertiary);border-radius:var(--radius-md);padding:10px 14px;margin-bottom:16px;">
                <p style="font-size:12px;font-weight:500;margin-bottom:6px;">Log poslední zálohy:</p>
                <pre style="font-size:11.5px;margin:0;white-space:pre-wrap;color:var(--text-secondary);"><?= e(file_get_contents($log)) ?></pre>
            </div>
        <?php endif; ?>

        <?php
        $existujiciZalohy = glob('/volume1/web/_ADMIN/auto_backup/J Services/jservices-*.zip') ?: [];
        rsort($existujiciZalohy);
        ?>

        <div style="display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px;">
            <form method="post">
                <input type="hidden" name="akce" value="spustit_zalohu">
                <button type="submit" class="btn btn-primary">Vytvořit zálohu nyní</button>
            </form>
            <form method="post">
                <input type="hidden" name="akce" value="spustit_zalohu">
                <input type="hidden" name="stahni" value="1">
                <button type="submit" class="btn">Vytvořit a stáhnout ZIP</button>
            </form>
        </div>

        <?php if (count($existujiciZalohy) > 0): ?>
        <h2 style="margin-bottom:10px;font-size:14px;">Existující zálohy (<?= count($existujiciZalohy) ?>)</h2>
        <table>
            <thead>
                <tr><th>Soubor</th><th>Datum</th><th>Velikost</th><th>Stáhnout</th></tr>
            </thead>
            <tbody>
                <?php foreach (array_slice($existujiciZalohy, 0, 10) as $z): ?>
                <tr>
                    <td style="font-size:12.5px;"><?= e(basename($z)) ?></td>
                    <td style="font-size:12.5px;"><?= e(date('j. n. Y H:i', filemtime($z))) ?></td>
                    <td style="font-size:12.5px;"><?= round(filesize($z) / 1024 / 1024, 1) ?> MB</td>
                    <td><a href="admin_download.php?soubor=<?= urlencode(basename($z)) ?>" class="btn btn-sm">⬇ Stáhnout</a></td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
        <?php if (count($existujiciZalohy) > 10): ?>
            <p style="font-size:12px;color:var(--text-tertiary);margin-top:8px;">Zobrazeno 10 z <?= count($existujiciZalohy) ?> záloh.</p>
        <?php endif; ?>
        <?php else: ?>
            <p style="color:var(--text-secondary);font-size:13px;">Zatím žádné zálohy.</p>
        <?php endif; ?>
    </div>


<?php elseif ($sekce === 'menu'): ?>

    <div class="karta">
        <h2 style="margin-bottom:4px;"><?= $upravovanaPolozkaMenu ? 'Upravit položku' : 'Přidat položku menu' ?></h2>
        <p style="color:var(--text-secondary);font-size:13px;margin-bottom:16px;">Chcete-li rozbalovací skupinu (např. AnyDesk → Windows / Mac), nejdřív přidejte nadřazenou položku <em>bez URL</em>, pak k ní přidejte podpoložky s URL a vyberte ji jako nadřazenou.</p>
        <form method="post" enctype="multipart/form-data">
            <input type="hidden" name="akce" value="<?= $upravovanaPolozkaMenu ? 'upravit_polozku_menu' : 'pridat_polozku_menu' ?>">
            <?php if ($upravovanaPolozkaMenu): ?>
                <input type="hidden" name="id" value="<?= (int) $upravovanaPolozkaMenu['id'] ?>">
            <?php endif; ?>

            <label for="menu_text">Text</label>
            <input type="text" id="menu_text" name="text" required value="<?= e($upravovanaPolozkaMenu['text'] ?? '') ?>">

            <label for="menu_url">URL <span style="color:var(--text-tertiary);font-weight:400;">(nechte prázdné pro nadřazenou rozbalovací položku)</span></label>
            <input type="text" id="menu_url" name="url" placeholder="https://... nebo #sekce" value="<?= e($upravovanaPolozkaMenu['url'] ?? '') ?>">

            <label for="menu_ikona">Ikona <span style="color:var(--text-tertiary);font-weight:400;">(nepovinné – malý obrázek vedle textu, PNG/SVG, max 32×32 px)</span></label>
            <?php $aktIkona = $upravovanaPolozkaMenu['ikona_soubor'] ?? ''; ?>
            <?php if ($aktIkona !== '' && $aktIkona !== null): ?>
                <div style="display:flex;align-items:center;gap:10px;margin-bottom:10px;">
                    <img src="<?= e($aktIkona) ?>" alt="" style="width:24px;height:24px;object-fit:contain;">
                    <span style="font-size:13px;color:var(--text-secondary);">Aktuální ikona</span>
                    <label style="display:flex;align-items:center;gap:6px;font-weight:400;cursor:pointer;">
                        <input type="checkbox" name="smazat_ikonu" value="1"> Smazat ikonu
                    </label>
                </div>
            <?php endif; ?>
            <input type="file" id="menu_ikona" name="ikona_soubor" accept="image/*" style="margin-bottom:14px;">

            <label for="menu_nadrazena">Nadřazená položka <span style="color:var(--text-tertiary);font-weight:400;">(jen pro podpoložky rozbalovacího menu)</span></label>
            <select id="menu_nadrazena" name="nadrazena_id">
                <option value="">– žádná (hlavní úroveň) –</option>
                <?php foreach ($hlavniPolozkyMenu as $hp): ?>
                    <?php if ($upravovanaPolozkaMenu && (int) $hp['id'] === (int) $upravovanaPolozkaMenu['id']) continue; ?>
                    <option value="<?= (int) $hp['id'] ?>" <?= ((string) ($upravovanaPolozkaMenu['nadrazena_id'] ?? '')) === ((string) $hp['id']) ? 'selected' : '' ?>><?= e($hp['text']) ?></option>
                <?php endforeach; ?>
            </select>

            <label for="menu_poradi">Pořadí</label>
            <input type="number" id="menu_poradi" name="poradi" min="0" value="<?= (int) ($upravovanaPolozkaMenu['poradi'] ?? (count($vsechnyPolozkyMenu) + 1)) ?>">

            <label>Pozice v navigaci</label>
            <div style="display:flex;gap:12px;margin-bottom:14px;">
                <label style="display:flex;align-items:center;gap:6px;font-weight:400;cursor:pointer;">
                    <input type="radio" name="pozice" value="hlavni" <?= ($upravovanaPolozkaMenu['pozice'] ?? 'hlavni') !== 'pravy' ? 'checked' : '' ?>>
                    Hlavní menu (vlevo)
                </label>
                <label style="display:flex;align-items:center;gap:6px;font-weight:400;cursor:pointer;">
                    <input type="radio" name="pozice" value="pravy" <?= ($upravovanaPolozkaMenu['pozice'] ?? '') === 'pravy' ? 'checked' : '' ?>>
                    Pravý panel (vedle Helpdesk IT)
                </label>
            </div>

            <?php if (!$upravovanaPolozkaMenu): ?>
                <div class="checkbox-radek">
                    <input type="checkbox" id="menu_viditelna" name="viditelna" checked>
                    <label for="menu_viditelna">Zobrazit v menu hned</label>
                </div>
            <?php endif; ?>

            <button type="submit" class="btn btn-primary"><?= $upravovanaPolozkaMenu ? 'Uložit změny' : 'Přidat položku' ?></button>
            <?php if ($upravovanaPolozkaMenu): ?>
                <a href="admin.php?sekce=menu" class="btn">Zrušit</a>
            <?php endif; ?>
        </form>
    </div>

    <div class="karta">
        <h2 style="margin-bottom:16px;">Aktuální menu (<?= count($vsechnyPolozkyMenu) ?> položek)</h2>
        <?php if (count($vsechnyPolozkyMenu) === 0): ?>
            <p style="color:var(--text-secondary);">Zatím žádné položky.</p>
        <?php else: ?>
        <table>
            <thead>
                <tr><th>Pořadí</th><th>Text</th><th>URL</th><th>Pozice</th><th>Typ</th><th>Stav</th><th>Akce</th></tr>
            </thead>
            <tbody>
                <?php foreach ($vsechnyPolozkyMenu as $mp):
                    $jeNadrazena = ($mp['nadrazena_id'] === null);
                    $nadrazenaText = '';
                    if (!$jeNadrazena) {
                        foreach ($vsechnyPolozkyMenu as $hledej) {
                            if ((int) $hledej['id'] === (int) $mp['nadrazena_id']) {
                                $nadrazenaText = $hledej['text'];
                                break;
                            }
                        }
                    }
                ?>
                <tr style="<?= !$jeNadrazena ? 'background:var(--bg-tertiary);' : '' ?>">
                    <td><?= (int) $mp['poradi'] ?></td>
                    <td><?= !$jeNadrazena ? '<span style="color:var(--text-tertiary);margin-right:4px;">↳</span>' : '' ?><?= e($mp['text']) ?></td>
                    <td style="font-size:12px;color:var(--text-secondary);"><?= $mp['url'] ? e($mp['url']) : '<em>rozbalovací</em>' ?></td>
                    <td>
                        <?php if (($mp['pozice'] ?? 'hlavni') === 'pravy'): ?>
                            <span class="stitek" style="background:#F0E8FA;color:#6B3FA0;">pravý panel</span>
                        <?php else: ?>
                            <span class="stitek" style="background:var(--bg-secondary);color:var(--text-secondary);">hlavní</span>
                        <?php endif; ?>
                    </td>
                    <td>
                        <?php if (!$jeNadrazena): ?>
                            <span class="stitek stitek-nove" style="background:#F0E8FA;color:#6B3FA0;">podpoložka</span>
                            <span style="font-size:11px;color:var(--text-tertiary);">↑ <?= e($nadrazenaText) ?></span>
                        <?php else: ?>
                            <span class="stitek" style="background:var(--bg-secondary);color:var(--text-secondary);">hlavní</span>
                        <?php endif; ?>
                    </td>
                    <td>
                        <?php if ((int) $mp['viditelna'] === 1): ?>
                            <span class="stitek stitek-viditelna">viditelná</span>
                        <?php else: ?>
                            <span class="stitek stitek-skryta">skrytá</span>
                        <?php endif; ?>
                    </td>
                    <td class="akce-bunka">
                        <a href="admin.php?sekce=menu&upravit_polozku=<?= (int) $mp['id'] ?>" class="btn btn-sm">Upravit</a>
                        <form method="post" style="display:inline;">
                            <input type="hidden" name="akce" value="prepnout_viditelnost_menu">
                            <input type="hidden" name="id" value="<?= (int) $mp['id'] ?>">
                            <button type="submit" class="btn btn-sm"><?= (int) $mp['viditelna'] === 1 ? 'Skrýt' : 'Zobrazit' ?></button>
                        </form>
                        <form method="post" style="display:inline;" onsubmit="return confirm('Smazat položku<?= !$jeNadrazena ? '' : ' a všechny její podpoložky' ?>?');">
                            <input type="hidden" name="akce" value="smazat_polozku_menu">
                            <input type="hidden" name="id" value="<?= (int) $mp['id'] ?>">
                            <button type="submit" class="btn btn-sm btn-danger">Smazat</button>
                        </form>
                    </td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
        <?php endif; ?>
    </div>

<?php elseif ($sekce === 'kontakty'): ?>

    <div class="karta">
        <h2 style="margin-bottom:8px;"><?= $upravovanyKontakt ? 'Upravit kontakt' : 'Přidat fakturační kontakt' ?></h2>
        <p style="font-size:13px;color:var(--text-secondary);margin-bottom:16px;">Prázdná pole se na webu nezobrazí.</p>
        <form method="post">
            <input type="hidden" name="akce" value="<?= $upravovanyKontakt ? 'upravit_fakturacni_kontakt' : 'pridat_fakturacni_kontakt' ?>">
            <?php if ($upravovanyKontakt): ?>
                <input type="hidden" name="id" value="<?= (int) $upravovanyKontakt['id'] ?>">
            <?php endif; ?>

            <div style="display:grid;grid-template-columns:1fr 1fr;gap:0 16px;">
                <div>
                    <label for="fk_jmeno">Jméno</label>
                    <input type="text" id="fk_jmeno" name="jmeno" value="<?= e($upravovanyKontakt['jmeno'] ?? '') ?>">
                </div>
                <div>
                    <label for="fk_prijmeni">Příjmení</label>
                    <input type="text" id="fk_prijmeni" name="prijmeni" value="<?= e($upravovanyKontakt['prijmeni'] ?? '') ?>">
                </div>
            </div>

            <label for="fk_adresa">Adresa</label>
            <input type="text" id="fk_adresa" name="adresa" value="<?= e($upravovanyKontakt['adresa'] ?? '') ?>">

            <div style="display:grid;grid-template-columns:1fr 1fr;gap:0 16px;">
                <div>
                    <label for="fk_ico">IČ</label>
                    <input type="text" id="fk_ico" name="ico" value="<?= e($upravovanyKontakt['ico'] ?? '') ?>">
                </div>
                <div>
                    <label for="fk_dic">DIČ</label>
                    <input type="text" id="fk_dic" name="dic" value="<?= e($upravovanyKontakt['dic'] ?? '') ?>">
                </div>
            </div>

            <div style="display:grid;grid-template-columns:1fr 1fr;gap:0 16px;">
                <div>
                    <label for="fk_telefon">Telefon</label>
                    <input type="text" id="fk_telefon" name="telefon" value="<?= e($upravovanyKontakt['telefon'] ?? '') ?>">
                </div>
                <div>
                    <label for="fk_email">E-mail</label>
                    <input type="email" id="fk_email" name="email" value="<?= e($upravovanyKontakt['email'] ?? '') ?>">
                </div>
            </div>

            <label for="fk_poradi">Pořadí</label>
            <input type="number" id="fk_poradi" name="poradi" min="0" value="<?= (int) ($upravovanyKontakt['poradi'] ?? (count($vsechnyKontakty) + 1)) ?>">

            <div class="checkbox-radek">
                <input type="checkbox" id="fk_platce_dph" name="platce_dph" <?= !empty($upravovanyKontakt['platce_dph']) ? 'checked' : '' ?>>
                <label for="fk_platce_dph">Plátce DPH</label>
            </div>

            <label for="fk_poznamka">Poznámka <span style="color:var(--text-tertiary);font-weight:400;">(zobrazí se na webu pod ostatními údaji)</span></label>
            <textarea id="fk_poznamka" name="poznamka"><?= e($upravovanyKontakt['poznamka'] ?? '') ?></textarea>

            <?php if (!$upravovanyKontakt): ?>
                <div class="checkbox-radek">
                    <input type="checkbox" id="fk_viditelny" name="viditelny" checked>
                    <label for="fk_viditelny">Zobrazit na webu hned</label>
                </div>
            <?php endif; ?>

            <button type="submit" class="btn btn-primary"><?= $upravovanyKontakt ? 'Uložit změny' : 'Přidat kontakt' ?></button>
            <?php if ($upravovanyKontakt): ?>
                <a href="admin.php?sekce=kontakty" class="btn">Zrušit</a>
            <?php endif; ?>
        </form>
    </div>

    <div class="karta">
        <h2 style="margin-bottom:16px;">Fakturační kontakty (<?= count($vsechnyKontakty) ?>)</h2>
        <?php if (count($vsechnyKontakty) === 0): ?>
            <p style="color:var(--text-secondary);">Zatím žádné kontakty.</p>
        <?php else: ?>
        <table>
            <thead>
                <tr><th>Jméno</th><th>IČ</th><th>Telefon</th><th>E-mail</th><th>Stav</th><th>Akce</th></tr>
            </thead>
            <tbody>
                <?php foreach ($vsechnyKontakty as $k): ?>
                <tr>
                    <td><?= e(trim($k['jmeno'] . ' ' . $k['prijmeni'])) ?></td>
                    <td><?= e($k['ico']) ?></td>
                    <td><?= e($k['telefon']) ?></td>
                    <td><?= $k['email'] ? '<a href="mailto:' . e($k['email']) . '">' . e($k['email']) . '</a>' : '' ?></td>
                    <td>
                        <?php if ((int) $k['viditelny'] === 1): ?>
                            <span class="stitek stitek-viditelna">viditelný</span>
                        <?php else: ?>
                            <span class="stitek stitek-skryta">skrytý</span>
                        <?php endif; ?>
                    </td>
                    <td class="akce-bunka">
                        <a href="admin.php?sekce=kontakty&upravit_kontakt=<?= (int) $k['id'] ?>" class="btn btn-sm">Upravit</a>
                        <form method="post" style="display:inline;">
                            <input type="hidden" name="akce" value="prepnout_viditelnost_kontaktu">
                            <input type="hidden" name="id" value="<?= (int) $k['id'] ?>">
                            <button type="submit" class="btn btn-sm"><?= (int) $k['viditelny'] === 1 ? 'Skrýt' : 'Zobrazit' ?></button>
                        </form>
                        <form method="post" style="display:inline;" onsubmit="return confirm('Opravdu smazat tento kontakt?');">
                            <input type="hidden" name="akce" value="smazat_fakturacni_kontakt">
                            <input type="hidden" name="id" value="<?= (int) $k['id'] ?>">
                            <button type="submit" class="btn btn-sm btn-danger">Smazat</button>
                        </form>
                    </td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
        <?php endif; ?>
    </div>

<?php elseif ($sekce === 'spotlight'): ?>

    <div class="karta">
        <h2 style="margin-bottom:6px;"><?= $upravovanySpotlight ? 'Upravit novinku' : 'Přidat novinku' ?></h2>
        <p style="font-size:13px;color:var(--text-secondary);margin-bottom:16px;">Zvýrazněná karta pod hero sekcí. Štítek nechte prázdný, pokud nechcete zobrazovat "novinka" apod.</p>
        <form method="post">
            <input type="hidden" name="akce" value="<?= $upravovanySpotlight ? 'upravit_spotlight' : 'pridat_spotlight' ?>">
            <?php if ($upravovanySpotlight): ?>
                <input type="hidden" name="id" value="<?= (int) $upravovanySpotlight['id'] ?>">
            <?php endif; ?>

            <label for="sp_nadpis">Nadpis</label>
            <input type="text" id="sp_nadpis" name="nadpis" required value="<?= e($upravovanySpotlight['nadpis'] ?? '') ?>">

            <label for="sp_popis">Popis</label>
            <textarea id="sp_popis" name="popis"><?= e($upravovanySpotlight['popis'] ?? '') ?></textarea>

            <div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 14px;">
                <div>
                    <label for="sp_v1">Výhoda 1</label>
                    <input type="text" id="sp_v1" name="vyhoda1" value="<?= e($upravovanySpotlight['vyhoda1'] ?? '') ?>">
                </div>
                <div>
                    <label for="sp_v2">Výhoda 2</label>
                    <input type="text" id="sp_v2" name="vyhoda2" value="<?= e($upravovanySpotlight['vyhoda2'] ?? '') ?>">
                </div>
                <div>
                    <label for="sp_v3">Výhoda 3</label>
                    <input type="text" id="sp_v3" name="vyhoda3" value="<?= e($upravovanySpotlight['vyhoda3'] ?? '') ?>">
                </div>
            </div>

            <label for="sp_stitek">Štítek <span style="color:var(--text-tertiary);font-weight:400;">(nechte prázdné pro skrytí)</span></label>
            <input type="text" id="sp_stitek" name="stitek" value="<?= e($upravovanySpotlight['stitek'] ?? '') ?>" placeholder="např. novinka">

            <label for="sp_poradi">Pořadí</label>
            <input type="number" id="sp_poradi" name="poradi" min="0" value="<?= (int) ($upravovanySpotlight['poradi'] ?? (count($vsechnySpotlight) + 1)) ?>">

            <?php if (!$upravovanySpotlight): ?>
                <div class="checkbox-radek">
                    <input type="checkbox" id="sp_viditelna" name="viditelna" checked>
                    <label for="sp_viditelna">Zobrazit na webu hned</label>
                </div>
            <?php endif; ?>

            <button type="submit" class="btn btn-primary"><?= $upravovanySpotlight ? 'Uložit změny' : 'Přidat novinku' ?></button>
            <?php if ($upravovanySpotlight): ?>
                <a href="admin.php?sekce=spotlight" class="btn">Zrušit</a>
            <?php endif; ?>
        </form>
    </div>

    <div class="karta">
        <h2 style="margin-bottom:16px;">Všechny novinky (<?= count($vsechnySpotlight) ?>)</h2>
        <?php if (count($vsechnySpotlight) === 0): ?>
            <p style="color:var(--text-secondary);">Zatím žádné.</p>
        <?php else: ?>
        <table>
            <thead>
                <tr><th>Pořadí</th><th>Nadpis</th><th>Štítek</th><th>Stav</th><th>Akce</th></tr>
            </thead>
            <tbody>
                <?php foreach ($vsechnySpotlight as $sp): ?>
                <tr>
                    <td><?= (int) $sp['poradi'] ?></td>
                    <td><?= e($sp['nadpis']) ?></td>
                    <td><?= $sp['stitek'] !== '' ? '<span class="stitek stitek-nove">' . e($sp['stitek']) . '</span>' : '<span style="color:var(--text-tertiary);">–</span>' ?></td>
                    <td>
                        <?php if ((int) $sp['viditelna'] === 1): ?>
                            <span class="stitek stitek-viditelna">viditelný</span>
                        <?php else: ?>
                            <span class="stitek stitek-skryta">skrytý</span>
                        <?php endif; ?>
                    </td>
                    <td class="akce-bunka">
                        <a href="admin.php?sekce=spotlight&upravit_spotlight=<?= (int) $sp['id'] ?>" class="btn btn-sm">Upravit</a>
                        <form method="post" style="display:inline;">
                            <input type="hidden" name="akce" value="prepnout_viditelnost_spotlight">
                            <input type="hidden" name="id" value="<?= (int) $sp['id'] ?>">
                            <button type="submit" class="btn btn-sm"><?= (int) $sp['viditelna'] === 1 ? 'Skrýt' : 'Zobrazit' ?></button>
                        </form>
                        <form method="post" style="display:inline;" onsubmit="return confirm('Opravdu smazat?');">
                            <input type="hidden" name="akce" value="smazat_spotlight">
                            <input type="hidden" name="id" value="<?= (int) $sp['id'] ?>">
                            <button type="submit" class="btn btn-sm btn-danger">Smazat</button>
                        </form>
                    </td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
        <?php endif; ?>
    </div>

<?php elseif ($sekce === 'statistiky'): ?>

    <div class="karta">
        <h2 style="margin-bottom:16px;"><?= $upravovanaStatistika ? 'Upravit statistiku' : 'Přidat statistiku' ?></h2>
        <form method="post">
            <input type="hidden" name="akce" value="<?= $upravovanaStatistika ? 'upravit_statistiku' : 'pridat_statistiku' ?>">
            <?php if ($upravovanaStatistika): ?>
                <input type="hidden" name="id" value="<?= (int) $upravovanaStatistika['id'] ?>">
            <?php endif; ?>

            <div style="display:grid;grid-template-columns:1fr 1fr;gap:0 16px;">
                <div>
                    <label for="stat_popisek">Popisek <span style="color:var(--text-tertiary);font-weight:400;">(malý text nahoře)</span></label>
                    <input type="text" id="stat_popisek" name="popisek" required value="<?= e($upravovanaStatistika['popisek'] ?? '') ?>" placeholder="např. Tým">
                </div>
                <div>
                    <label for="stat_hodnota">Hodnota <span style="color:var(--text-tertiary);font-weight:400;">(velký text dole)</span></label>
                    <input type="text" id="stat_hodnota" name="hodnota" required value="<?= e($upravovanaStatistika['hodnota'] ?? '') ?>" placeholder="např. 2 specialisté">
                </div>
            </div>

            <label for="stat_poradi">Pořadí</label>
            <input type="number" id="stat_poradi" name="poradi" min="0" value="<?= (int) ($upravovanaStatistika['poradi'] ?? (count($vsechnyStatistiky) + 1)) ?>">

            <?php if (!$upravovanaStatistika): ?>
                <div class="checkbox-radek">
                    <input type="checkbox" id="stat_viditelna" name="viditelna" checked>
                    <label for="stat_viditelna">Zobrazit na webu hned</label>
                </div>
            <?php endif; ?>

            <button type="submit" class="btn btn-primary"><?= $upravovanaStatistika ? 'Uložit změny' : 'Přidat statistiku' ?></button>
            <?php if ($upravovanaStatistika): ?>
                <a href="admin.php?sekce=statistiky" class="btn">Zrušit</a>
            <?php endif; ?>
        </form>
    </div>

    <div class="karta">
        <h2 style="margin-bottom:16px;">Všechny statistiky (<?= count($vsechnyStatistiky) ?>)</h2>
        <?php if (count($vsechnyStatistiky) === 0): ?>
            <p style="color:var(--text-secondary);">Zatím žádné statistiky.</p>
        <?php else: ?>
        <table>
            <thead>
                <tr><th>Pořadí</th><th>Popisek</th><th>Hodnota</th><th>Stav</th><th>Akce</th></tr>
            </thead>
            <tbody>
                <?php foreach ($vsechnyStatistiky as $st): ?>
                <tr>
                    <td><?= (int) $st['poradi'] ?></td>
                    <td style="color:var(--text-secondary);font-size:12px;"><?= e($st['popisek']) ?></td>
                    <td><strong><?= e($st['hodnota']) ?></strong></td>
                    <td>
                        <?php if ((int) $st['viditelna'] === 1): ?>
                            <span class="stitek stitek-viditelna">viditelná</span>
                        <?php else: ?>
                            <span class="stitek stitek-skryta">skrytá</span>
                        <?php endif; ?>
                    </td>
                    <td class="akce-bunka">
                        <a href="admin.php?sekce=statistiky&upravit_statistiku=<?= (int) $st['id'] ?>" class="btn btn-sm">Upravit</a>
                        <form method="post" style="display:inline;">
                            <input type="hidden" name="akce" value="prepnout_viditelnost_statistiky">
                            <input type="hidden" name="id" value="<?= (int) $st['id'] ?>">
                            <button type="submit" class="btn btn-sm"><?= (int) $st['viditelna'] === 1 ? 'Skrýt' : 'Zobrazit' ?></button>
                        </form>
                        <form method="post" style="display:inline;" onsubmit="return confirm('Opravdu smazat?');">
                            <input type="hidden" name="akce" value="smazat_statistiku">
                            <input type="hidden" name="id" value="<?= (int) $st['id'] ?>">
                            <button type="submit" class="btn btn-sm btn-danger">Smazat</button>
                        </form>
                    </td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
        <?php endif; ?>
    </div>

<?php elseif ($sekce === 'procmy'): ?>

    <div class="karta">
        <h2 style="margin-bottom:16px;"><?= $upravovanyProcMy ? 'Upravit řádek' : 'Přidat řádek' ?></h2>
        <form method="post">
            <input type="hidden" name="akce" value="<?= $upravovanyProcMy ? 'upravit_proc_my' : 'pridat_proc_my' ?>">
            <?php if ($upravovanyProcMy): ?>
                <input type="hidden" name="id" value="<?= (int) $upravovanyProcMy['id'] ?>">
            <?php endif; ?>

            <label for="pm_tucna">Tučná část</label>
            <input type="text" id="pm_tucna" name="tucna_cast" required value="<?= e($upravovanyProcMy['tucna_cast'] ?? '') ?>">

            <label for="pm_zbytek">Zbytek věty</label>
            <input type="text" id="pm_zbytek" name="zbytek_vety" value="<?= e($upravovanyProcMy['zbytek_vety'] ?? '') ?>" placeholder="např. – žádné call centrum">

            <label>Ikona</label>
            <?php $aktIkonaPM = $upravovanyProcMy['ikona'] ?? 'check'; ?>
            <div class="ikona-select" id="ikona-select-pm">
                <div class="ikona-select-hodnota" id="ikona-select-hodnota-pm">
                    <span class="ikona-select-ikona"><?= icon($aktIkonaPM, 18) ?></span>
                    <span class="ikona-select-text"><?= e(seznam_ikon_sluzeb()[$aktIkonaPM] ?? $aktIkonaPM) ?></span>
                    <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" style="margin-left:auto;" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
                </div>
                <div class="ikona-select-dropdown" id="ikona-select-dropdown-pm" style="display:none;">
                    <?php foreach (seznam_ikon_sluzeb() as $klicIkony => $popisekIkony): ?>
                    <div class="ikona-select-polozka <?= $aktIkonaPM === $klicIkony ? 'aktivni' : '' ?>" data-value="<?= e($klicIkony) ?>">
                        <span class="ikona-select-ikona"><?= icon($klicIkony, 18) ?></span>
                        <span><?= e($popisekIkony) ?></span>
                    </div>
                    <?php endforeach; ?>
                </div>
            </div>
            <input type="hidden" name="ikona" id="ikona-hidden-pm" value="<?= e($aktIkonaPM) ?>">

            <label for="pm_poradi">Pořadí</label>
            <input type="number" id="pm_poradi" name="poradi" min="0" value="<?= (int) ($upravovanyProcMy['poradi'] ?? (count($vsechnyProcMy) + 1)) ?>">

            <?php if (!$upravovanyProcMy): ?>
                <div class="checkbox-radek">
                    <input type="checkbox" id="pm_viditelna" name="viditelna" checked>
                    <label for="pm_viditelna">Zobrazit na webu hned</label>
                </div>
            <?php endif; ?>

            <button type="submit" class="btn btn-primary"><?= $upravovanyProcMy ? 'Uložit změny' : 'Přidat řádek' ?></button>
            <?php if ($upravovanyProcMy): ?>
                <a href="admin.php?sekce=procmy" class="btn">Zrušit</a>
            <?php endif; ?>
        </form>
    </div>

    <div class="karta">
        <h2 style="margin-bottom:16px;">Všechny řádky (<?= count($vsechnyProcMy) ?>)</h2>
        <?php if (count($vsechnyProcMy) === 0): ?>
            <p style="color:var(--text-secondary);">Zatím žádné řádky.</p>
        <?php else: ?>
        <table>
            <thead>
                <tr><th>Pořadí</th><th>Tučná část</th><th>Zbytek věty</th><th>Stav</th><th>Akce</th></tr>
            </thead>
            <tbody>
                <?php foreach ($vsechnyProcMy as $pm): ?>
                <tr>
                    <td><?= (int) $pm['poradi'] ?></td>
                    <td><strong><?= e($pm['tucna_cast']) ?></strong></td>
                    <td style="color:var(--text-secondary);"><?= e($pm['zbytek_vety']) ?></td>
                    <td>
                        <?php if ((int) $pm['viditelna'] === 1): ?>
                            <span class="stitek stitek-viditelna">viditelný</span>
                        <?php else: ?>
                            <span class="stitek stitek-skryta">skrytý</span>
                        <?php endif; ?>
                    </td>
                    <td class="akce-bunka">
                        <a href="admin.php?sekce=procmy&upravit_proc_my=<?= (int) $pm['id'] ?>" class="btn btn-sm">Upravit</a>
                        <form method="post" style="display:inline;">
                            <input type="hidden" name="akce" value="prepnout_viditelnost_proc_my">
                            <input type="hidden" name="id" value="<?= (int) $pm['id'] ?>">
                            <button type="submit" class="btn btn-sm"><?= (int) $pm['viditelna'] === 1 ? 'Skrýt' : 'Zobrazit' ?></button>
                        </form>
                        <form method="post" style="display:inline;" onsubmit="return confirm('Opravdu smazat?');">
                            <input type="hidden" name="akce" value="smazat_proc_my">
                            <input type="hidden" name="id" value="<?= (int) $pm['id'] ?>">
                            <button type="submit" class="btn btn-sm btn-danger">Smazat</button>
                        </form>
                    </td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
        <?php endif; ?>
    </div>

<?php elseif ($sekce === 'obsah'):
    $obsahHodnoty = nacti_obsah($pdo);
    $definice     = definice_obsahu();
    $skupiny      = [];
    foreach ($definice as $klic => $info) {
        $skupiny[$info['skupina']][$klic] = $info;
    }
    $nazvySkupin = array_keys($skupiny);
    $aktivniCast = in_array($_GET['cast'] ?? '', $nazvySkupin, true) ? $_GET['cast'] : $nazvySkupin[0];
?>

    <?php if (isset($_GET['ulozeno'])): ?>
        <div class="zprava-uspech">Uloženo.</div>
    <?php endif; ?>

    <div class="podtaby">
        <?php foreach ($nazvySkupin as $nazevSkupiny): ?>
            <a href="admin.php?sekce=obsah&cast=<?= urlencode($nazevSkupiny) ?>" class="<?= $aktivniCast === $nazevSkupiny ? 'aktivni' : '' ?>"><?= e($nazevSkupiny) ?></a>
        <?php endforeach; ?>
    </div>

    <div class="karta">
        <h2 style="margin-bottom:16px;"><?= e($aktivniCast) ?></h2>
        <form method="post">
            <input type="hidden" name="akce" value="ulozit_obsah">
            <input type="hidden" name="cast" value="<?= e($aktivniCast) ?>">

            <?php foreach ($skupiny[$aktivniCast] as $klic => $info): ?>
                <label for="<?= e($klic) ?>"><?= e($info['label']) ?></label>
                <?php if ($info['typ'] === 'textarea'): ?>
                    <textarea id="<?= e($klic) ?>" name="<?= e($klic) ?>"><?= e($obsahHodnoty[$klic]) ?></textarea>
                <?php else: ?>
                    <input type="text" id="<?= e($klic) ?>" name="<?= e($klic) ?>" value="<?= e($obsahHodnoty[$klic]) ?>">
                <?php endif; ?>
            <?php endforeach; ?>

            <button type="submit" class="btn btn-primary">Uložit</button>
        </form>
    </div>

<?php endif; ?>

</div>

</body>
</html>

Youez - 2016 - github.com/yon3zu
LinuXploit