import React, { useEffect, useMemo, useState } from 'react'; import { Box, Heading, Text, List, ListItem, Link, Divider, Code, OrderedList, HStack, IconButton, useColorModeValue, useToast, VStack, Badge, SimpleGrid, Icon, Accordion, AccordionItem, AccordionButton, AccordionPanel, AccordionIcon, Alert, AlertIcon, AlertTitle, AlertDescription, } from '@chakra-ui/react'; import { FaLink, FaArrowUp, FaCog, FaNewspaper, FaFutbol, FaUsers, FaImage, FaPhotoVideo, FaFolderOpen, FaHandshake, FaEnvelope, FaAward, FaSyncAlt, FaVideo, FaCalendarAlt, FaPalette, FaCommentAlt, FaKey, FaSearch, FaBug, FaLightbulb, FaCheckCircle, FaExclamationTriangle, FaTachometerAlt, FaChartLine, FaAddressBook, FaChalkboard, FaMobileAlt, FaInfoCircle, FaListOl, FaBook, FaBookOpen, FaComments, FaClipboardList, FaBolt, FaEdit, FaPaintBrush, FaLifeRing, } from 'react-icons/fa'; import AdminLayout from '../../layouts/AdminLayout'; const AdminDocsPage: React.FC = () => { const sections = useMemo( () => [ { id: 'uvod', label: 'Úvod a přehled', icon: FaLightbulb }, { id: 'nastaveni', label: 'Nastavení klubu', icon: FaCog }, { id: 'dashboard', label: 'Dashboard a přehledy', icon: FaTachometerAlt }, { id: 'clanky', label: 'Články a kategorie', icon: FaNewspaper }, { id: 'zapasy', label: 'Zápasy a tabulky', icon: FaFutbol }, { id: 'hraci-tymy', label: 'Hráči a týmy', icon: FaUsers }, { id: 'media', label: 'Média a soubory', icon: FaPhotoVideo }, { id: 'gallery', label: 'Galerie', icon: FaImage }, { id: 'files', label: 'Správa souborů', icon: FaFolderOpen }, { id: 'sponzori-bannery', label: 'Sponzoři a bannery', icon: FaHandshake }, { id: 'newsletter', label: 'Newsletter a e-maily', icon: FaEnvelope }, { id: 'aliasy', label: 'Alias soutěží', icon: FaAward }, { id: 'prefetch', label: 'Prefetch a cache', icon: FaSyncAlt }, { id: 'videa', label: 'Videa', icon: FaVideo }, { id: 'aktivity', label: 'Aktivity', icon: FaCalendarAlt }, { id: 'merch', label: 'Oblečení', icon: FaPalette }, { id: 'zpravy', label: 'Zprávy', icon: FaCommentAlt }, { id: 'contacts', label: 'Kontakty a formuláře', icon: FaAddressBook }, { id: 'analytics', label: 'Analytics a reporty', icon: FaChartLine }, { id: 'scoreboard', label: 'Tabule (Scoreboard)', icon: FaChalkboard }, { id: 'mobile-scoreboard', label: 'Mobilní scoreboard', icon: FaMobileAlt }, { id: 'uzivatele', label: 'Uživatelé a přístupy', icon: FaKey }, { id: 'docs', label: 'Interní dokumentace', icon: FaInfoCircle }, { id: 'checklist', label: 'Checklisty a postupy', icon: FaListOl }, { id: 'seo', label: 'SEO a metadata', icon: FaSearch }, { id: 'troubleshooting', label: 'Řešení problémů', icon: FaBug }, ], [] ); const [activeId, setActiveId] = useState(''); const toast = useToast(); useEffect(() => { const observer = new IntersectionObserver( (entries) => { const visible = entries .filter((e) => e.isIntersecting) .sort((a, b) => (a.boundingClientRect.top > b.boundingClientRect.top ? 1 : -1)); if (visible[0]) { setActiveId(visible[0].target.id); } }, { rootMargin: '-20% 0px -60% 0px', threshold: [0, 0.25, 0.5, 0.75, 1] } ); const els = sections.map((s) => document.getElementById(s.id)).filter(Boolean) as Element[]; els.forEach((el) => observer.observe(el)); return () => observer.disconnect(); }, [sections]); useEffect(() => { if (activeId) { try { localStorage.setItem('adminDocs:lastAnchor', activeId); } catch {} } }, [activeId]); useEffect(() => { const t = setTimeout(() => { const hash = (window.location.hash || '').replace('#', '').trim(); let targetId = hash; if (!targetId) { try { targetId = localStorage.getItem('adminDocs:lastAnchor') || ''; } catch {} } if (targetId) { const el = document.getElementById(targetId); if (el) { el.scrollIntoView({ behavior: 'smooth', block: 'start' }); setActiveId(targetId); } } }, 50); return () => clearTimeout(t); }, []); const copyDeepLink = async (id: string) => { try { const url = `${window.location.origin}${window.location.pathname}#${id}`; await navigator.clipboard.writeText(url); toast({ title: 'Odkaz zkopírován', status: 'success', duration: 1500, isClosable: true, }); } catch { toast({ title: 'Nelze zkopírovat odkaz', status: 'error', duration: 2000, isClosable: true, }); } }; const tocActiveColor = useColorModeValue('blue.700', 'blue.300'); const tocActiveBg = useColorModeValue('blue.50', 'blue.900'); const bgCard = useColorModeValue('white', 'gray.800'); const borderColor = useColorModeValue('gray.200', 'gray.700'); const SectionHeader = ({ id, icon, title }: { id: string; icon: any; title: string }) => ( {title} } onClick={() => copyDeepLink(id)} borderRadius="full" /> ); return ( {/* Sticky TOC */} Rychlá navigace {sections.map((s) => ( { e.preventDefault(); try { localStorage.setItem('adminDocs:lastAnchor', s.id); } catch {} const el = document.getElementById(s.id); if (el) { el.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); window.history.pushState(null, '', `#${s.id}`); } }} > {s.label} ))} {/* Main content */} Dokumentace Kompletní průvodce administrací vašeho klubového webu - vytvořeno pro každého, i bez technických znalostí Vítejte v admin panelu! Tato dokumentace vás krok za krokem provede všemi funkcemi systému. Pro rychlý start doporučujeme začít{' '} nastavením klubu . Potřebujete pomoc nebo vlastní úpravy? Technická podpora: Máte-li jakékoli dotazy nebo narazíte na problém, napište nám na{' '} help@tdvorak.dev {' '}— odpovídáme do 24 hodin.
Vlastní úpravy: Hledáte specifické funkce nebo přizpůsobení webu vašim potřebám? Kontaktujte nás a společně zjistíme, zda je vaše představa realizovatelná. Rádi vám pomůžeme!
{/* ÚVOD Section */} Tento administrační systém vám umožňuje jednoduše spravovat kompletní klubový web — od článků, přes zápasy a výsledky, až po newsletter a galerie. Není potřeba žádné programování ani technické znalosti. Vše je navrženo tak, aby to zvládl každý člen klubu. Co můžete dělat: Přidávat články, spravovat zápasy, nahrávat fotky do galerie, posílat newslettery fanouškům, upravovat vzhled webu a mnoho dalšího. Vše přehledně na jednom místě. Rychlé odkazy na nejpoužívanější sekce {[ { icon: FaNewspaper, title: 'Články', desc: 'Publikujte novinky a reportáže', link: '/admin/clanky' }, { icon: FaFutbol, title: 'Zápasy', desc: 'Automatické načítání z FAČR', link: '/admin/zapasy' }, { icon: FaUsers, title: 'Hráči a týmy', desc: 'Správa soupisek', link: '/admin/hraci' }, { icon: FaImage, title: 'Galerie', desc: 'Fotogalerie a alba', link: '/admin/gallery' }, { icon: FaPhotoVideo, title: 'Média', desc: 'Nahrávání obrázků a souborů', link: '/admin/media' }, { icon: FaEnvelope, title: 'Newsletter', desc: 'E-mailové kampaně', link: '/admin/newsletter' }, { icon: FaCog, title: 'Nastavení klubu', desc: 'Logo, barvy, kontakty', link: '/admin/nastaveni' }, { icon: FaHandshake, title: 'Sponzoři', desc: 'Správa partnerů klubu', link: '/admin/sponzori' }, { icon: FaVideo, title: 'Videa', desc: 'YouTube a další videa', link: '/admin/videa' }, { icon: FaCalendarAlt, title: 'Aktivity', desc: 'Kalendář akcí', link: '/admin/aktivity' }, { icon: FaChartLine, title: 'Analytics', desc: 'Statistiky návštěvnosti', link: '/admin/analytika' }, { icon: FaSyncAlt, title: 'Prefetch', desc: 'Aktualizace dat z FAČR', link: '/admin/prefetch' }, ].map((item, idx) => ( {item.title} {item.desc} ))} Tip pro začátečníky Pokud jste zde poprvé, začněte v pořadí: 1) Nastavení (vyplňte název klubu a logo), 2) Média (nahrajte pár obrázků), 3) Články (vytvořte první příspěvek). Zbytek můžete prozkoumávat postupně! Zpět na začátek {/* NASTAVENÍ Section */} Začněte zde! Nastavení je první, co byste měli vyplnit. Ovlivňuje vzhled webu, e-maily, načítání zápasů a další funkce. Bez správného nastavení web nebude fungovat optimálně. → Otevřít Nastavení klubu Co nastavit? (Krok za krokem) Název klubu — Plný název vašeho fotbalového klubu (zobrazuje se v záhlaví webu, e-mailech a všude na stránkách) Logo klubu — Nejdříve nahrajte logo do sekce{' '} Média , poté zkopírujte adresu obrázku (URL) a vložte ji sem Barvy — Primární barva (hlavní barva klubu) a sekundární barva (doplňková). Použijte barevné kódy jako např. #FF0000 pro červenou SMTP nastavení (pro e-maily) — Nutné pro odesílání newsletterů a automatických e-mailů. Potřebujete: adresu serveru (host), port (465 nebo 587), uživatelské jméno a heslo FAČR údaje — Club ID a Club Type získáte z{' '} is.fotbal.cz . Tyto údaje slouží k automatickému načítání zápasů a tabulek Sociální sítě — Vložte odkazy na Facebook, Instagram, YouTube profily klubu. Ikony se zobrazí v patičce webu Kontaktní údaje — E-mail, telefon a adresa klubu pro kontaktní stránku Tip pro SMTP (e-mailové nastavení) Port 465 používá SSL zabezpečení, port 587 používá STARTTLS. Používáte Gmail? Gmail vyžaduje „App Password" (heslo aplikace), ne vaše běžné heslo! Nastavte si ho v Google Account → Security → 2-Step Verification → App passwords. Nejste si jistí některým nastavením? Žádný problém! Napište nám na{' '} help@tdvorak.dev {' '}a pomůžeme vám se vším nastavit. Odpovídáme do 24 hodin. Zpět na začátek {/* DASHBOARD Section */} Hned po přihlášení najdete v sekci{' '} Dashboard souhrn nejdůležitějších informací o webu a klubu. {[{ title: 'Rychlý přehled', desc: 'Poslední články, plán zápasů, e-mailové statistiky.' }, { title: 'Akční dlaždice', desc: 'Tlačítka pro vytvoření článku, spuštění prefetch nebo import aliasů.' }, { title: 'Notifikace', desc: 'Varování na chybějící nastavení nebo neúspěšné importy.' }, { title: 'Widget aktivit', desc: 'Seznam nejbližších akcí z kalendáře aktivit.' }].map((item, idx) => ( {item.title} {item.desc} ))} Dashboard vychází z real-time dat. Pokud něco chybí, spusťte{' '} Prefetch nebo obnovte stránku. Zpět na začátek {/* ČLÁNKY Section */} Články jsou hlavní způsob, jak komunikovat s fanoušky. Můžete publikovat novinky, reportáže, rozhovory a další obsah. Je to jednoduché jako psaní příspěvku na Facebook! → Otevřít Články

Jak vytvořit článek? (Krok za krokem)

Otevřete sekci{' '} Články Klikněte na zelené tlačítko „Vytvořit článek" (vpravo nahoře) Vyplňte název článku — např. "Vítězství 3:1 proti Sokolu" Napište obsah — Můžete psát normální text. Pro pokročilé: podporován HTML/Markdown formát Vyberte kategorii — např. "Zápasy", "Aktuality", "Rozhovory". Pokud kategorie neexistuje, vytvořte novou Přidejte hlavní obrázek — Nejprve nahrajte obrázek do{' '} Média, poté zkopírujte jeho adresu (URL) a vložte ji do pole "Obrázek" Vyplňte SEO titulek a popis — Pomáhá návštěvníkům najít článek přes Google Zaškrtněte „Publikovat" pokud chcete článek hned zveřejnit. Pokud ne, můžete ho uložit jako koncept Klikněte na „Uložit" — Hotovo!

Jak přidat obrázky a videa do článku?

Pro obrázky: Nahrajte obrázek v sekci Média Zkopírujte adresu obrázku (např. /uploads/2025/01/foto.jpg) V editoru článku použijte HTML: <img src="/uploads/2025/01/foto.jpg" alt="Popis" /> Pro YouTube videa: Zkopírujte YouTube odkaz a vložte přímo do obsahu, nebo použijte HTML embed kód z YouTube.

SEO optimalizace (pro lepší viditelnost)

SEO pomáhá lidem najít vaše články přes Google. Vyplňte tyto pole: SEO Titulek: 50-60 znaků, obsahuje klíčová slova (např. "FK Dvorinka zvítězil 3:1 - reportáž ze zápasu") SEO Popis: 150-160 znaků, krátké shrnutí článku pro Google výsledky URL Slug: Krátký text bez diakritiky, s pomlčkami (např. "vitezstvi-3-1-sokol") Obrázek: Optimalizujte velikost (max 1MB, ideálně 1200x630 px)
Tip: Kategorie Vytvořte si kategorie jako "Zápasy", "Aktuality", "Mládež", "Rozhovory" atd. Pomohou fanouškům rychle najít konkrétní typ obsahu!
Zpět na začátek
{/* ZÁPASY Section */} Veškerá data o zápasech, tabulkách a výsledcích se automaticky načítají z FAČR (Fotbalová asociace ČR). Nemusíte nic zadávat ručně — stačí správné nastavení a systém vše stáhne sám! → Zobrazit zápasy → Aktualizovat data (Prefetch) Jak nastavit automatické načítání zápasů? Přejděte do{' '} Nastavení klubu Najděte sekci "FAČR údaje" Vyplňte Club ID a Club Type (získáte z{' '} is.fotbal.cz) Uložte nastavení a spusťte{' '} Prefetch pro načtení dat Hotovo! Zápasy a tabulky se budou automaticky aktualizovat Co jsou aliasy soutěží? Z FAČR někdy přicházejí dlouhé a nepřehledné názvy soutěží. V sekci{' '} Alias soutěží {' '} si můžete názvy zkrátit a upravit, jak se mají zobrazovat na webu. Příklad: "I. A třída skupina B - muži" → "I.A třída" Aktualizace dat Data se automaticky aktualizují pravidelně. Pokud potřebujete aktualizovat hned, použijte tlačítko v sekci{' '} Prefetch. Zpět na začátek {/* HRÁČI A TÝMY Section */} Udržujte seznam týmů a hráčů aktuální, aby fanoušci i trenéři měli okamžitý přehled o soupisce. V sekci{' '} Týmy spravujete základní údaje a fotografie. Hráče přiřazujte k týmům, doplňte čísla dresů, pozice a profilové obrázky. V případě chybně načtených log či názvů využijte{' '} aliasy soutěží nebo manuální úpravy týmů. Zpět na začátek {/* MÉDIA Section */} Sekce Média je vaše centrální úložiště pro všechny obrázky, loga a soubory. Vše, co nahrajete zde, můžete pak použít v článcích, bannerech, newsletterech nebo na stránce O klubu. → Otevřít Média Jak nahrát obrázek nebo soubor? Otevřete sekci{' '} Média Klikněte na tlačítko "Nahrát soubor" nebo "Upload" Vyberte obrázek ze svého počítače (doporučené formáty: JPG, PNG, max 5 MB) Po nahrání se zobrazí adresa souboru (URL) — např. /uploads/2025/01/foto.jpg Zkopírujte tuto adresu a použijte ji tam, kde potřebujete (články, nastavení loga atd.) Tipy pro práci s obrázky Optimalizujte velikost: Ideální šířka 1200-2000 px, velikost souboru max 1 MB Používejte popisné názvy: např. "zapas-sokol-2025-01.jpg" místo "IMG_1234.jpg" Formáty: JPG pro fotky, PNG pro loga s průhledností Záloha: Důležité fotky si uchovávejte i lokálně na počítači Pozor při mazání souborů! Než smažete obrázek, ověřte, že ho nepoužíváte v článcích, bannerech nebo jinde na webu. Po smazání se místo obrázku zobrazí chybová hlášká (404). Správa souborů Pro pokročilou správu všech nahraných souborů použijte sekci{' '} Soubory, kde vidíte celkový přehled, velikosti a můžete je filtrovat. Zpět na začátek {/* GALLERY Section */} V sekci Galerie spravujete fotografie z akcí, zápasů a dalších klubových událostí. Můžete využít propojení se službou Zonerama nebo nahrávat fotky přímo. → Otevřít Galerii Jak přidat fotogalerii? Otevřete sekci{' '} Galerie Klikněte na „Přidat album" nebo „Vytvořit galerii" Vyplňte název alba — např. "Zápas proti Spartaku 15.10.2025" Přidejte popis — krátký text, co fotky zobrazují Nahrajte náhledový obrázek — reprezentativní foto, které se zobrazí jako náhled Propojte se Zoneramou (volitelné) — Pokud máte fotky na Zonerama.cz, vložte odkaz na album Uložte album — zobrazí se fanouškům na webu! Co je Zonerama? Zonerama je český fotoserver, kde můžete zdarma ukládat fotky. Pokud tam už máte fotogalerie, můžete je propojit s vaším webem a nemusíte je nahrávat znovu! Stačí vložit odkaz. Tip pro organizaci Vytvářejte alba systematicky: "Sezóna 2024/25 - Domácí zápasy", "Letní soustředění 2025" atd. Fanouškům se pak lépe hledají konkrétní fotky! Zpět na začátek {/* FILES Section */} Sekce Soubory nabízí přehled všech nahraných položek včetně velikosti a data nahrání. Filtrujte podle typu souboru nebo názvu – snadno najdete starší materiály. Stáhněte soubor přímo z administrace pro lokální zálohu. Při hromadném úklidu postupujte opatrně a držte se doporučení v `FILES_MANAGEMENT_SYSTEM.md`. Zpět na začátek {/* SPONZOŘI Section */} Zobrazujte partnery klubu a spravujte reklamní plochy na webu i v newsletterech. V sekci{' '} Sponzoři přidejte logo, odkaz a pořadí zobrazení. Bannery vkládejte přes{' '} Bannery; nastavte cílovou URL a období platnosti. Statistiky prokliku sledujte v sekci{' '} Analytics. Zpět na začátek {/* NEWSLETTER Section */} Newsletter vám umožňuje posílat hromadné e-maily všem fanouškům, kteří se k odběru přihlásili. Ideální pro oznámení o zápasech, akcích nebo důležité informace o klubu. → Otevřít Newsletter Před odesláním newsletteru Vždy nejprve otestujte e-mail na své adrese! Zkontrolujte, že vše vypadá dobře, že nejsou překlepy a že obrázky se zobrazují správně. Až pak odešlete všem. Postup: Jak odeslat newsletter? Zkontrolujte SMTP nastavení — Musí být správně vyplněné v{' '} Nastavení. Bez něj e-maily nepůjdou odeslat! Otevřete{' '} Newsletter Vyplňte předmět e-mailu — např. "Pozvánka na zápas s Technikou Brno" Napište obsah — Můžete použít normální text nebo HTML formátování pro hezčí vzhled DŮLEŽITÉ: Pošlete testovací e-mail — Klikněte na „Odeslat test" a zadejte svou e-mailovou adresu. Zkontrolujte, jak e-mail vypadá Pokud vše vypadá dobře, klikněte na „Odeslat všem" — e-mail se rozešle všem přihlášeným Tipy pro úspěšný newsletter Pište stručně a jasně — čtenáři mají málo času Používejte poutavý předmět — zvýší to šanci, že e-mail otevřou Přidávejte odkazy na web pro více informací Neposílejte newslettery příliš často (doporučeno: max 1-2x týdně) Problém s odesíláním? Pokud e-maily nejdou odeslat nebo padají do spamu, napište nám na{' '} help@tdvorak.dev {' '}a pomůžeme vám nastavit SMTP a další pokročilé věci (SPF, DKIM záznamy). Zpět na začátek {/* ALIASY Section */} Alias správa slouží pro přejmenování soutěží importovaných z FAČR tak, aby byly na webu srozumitelné a jednotné. Otevřete{' '} Alias soutěží. Využijte automatický import ze souborů cache (tlačítko „Importovat ze soutěží"). Upravte aliasy ručně nebo přetáhněte pořadí pro prioritní soutěže. Každá změna se propíše na front-end během několika sekund po uložení. Zpět na začátek {/* PREFETCH Section */} Prefetch vytváří lokální cache dat (zápasy, videa, články) a výrazně zrychluje načítání webu. V sekci{' '} Prefetch zkontrolujte poslední běh a stav jednotlivých modulů. Spusťte ručně po větších obsahových změnách nebo při neaktuálních datech. Sledujte upozornění na chybějící tokeny či API klíče (např. YouTube). Bez nich se data neobnoví. Zpět na začátek {/* VIDEA Section */} Integrace s YouTube a dalšími platformami umožňuje vkládat playlisty i jednotlivá videa. Přidávejte videa v sekci{' '} Videa pomocí URL nebo ID videa. Aktivujte automatický import playlistu přes{' '} Prefetch. Náhledy se ukládají do cache; při problémech spusťte znovu Prefetch modul Videa. Zpět na začátek {/* AKTIVITY Section */} Klubové akce, tréninky a mimo-soutěžní události můžete prezentovat v kalendáři i na úvodní stránce. V sekci{' '} Aktivity nastavte datum, místo a krátký popis. Přidejte obrázek nebo ikonu pro lepší vizuální zobrazení. Aktivitu označte jako veřejnou, chcete-li ji zobrazit na webu. Zpět na začátek {/* MERCH Section */} Spravujte položky klubového merche a informujte fanoušky o dostupnosti zboží. Přidejte položky v{' '} Oblečení s popisem, cenou a fotkou. Využijte štítky pro kategorizaci (např. "dresy", "fan shop"). Sledujte zájem fanoušků přes kontaktní formulář nebo dedikovaný e-shop. Zpět na začátek {/* ZPRÁVY Section */} Zprávy zahrnují kontaktní formuláře, přihlášky a další komunikaci směrem ke klubu. V{' '} Zprávách vidíte přijaté zprávy a jejich stav. Odpovídejte z vlastní e-mailové schránky; systém uchovává historii pouze informativně. Označte vyřízené zprávy pro přehlednost týmu. Zpět na začátek {/* CONTACTS Section */} V sekci{' '} Kontakty spravujete kontaktní údaje klubu a odpovědné osoby pro jednotlivé typy dotazů. Zadejte telefon, e-mail a roli pro každého kontaktního pracovníka. U formulářů lze nastavit cílovou e-mailovou adresu a potvrzovací zprávu. Zkontrolujte oddíl Zprávy, zda se odesílané formuláře ukládají správně. Kontaktní údaje se propisují do patičky webu i do automatických e-mailů. Zpět na začátek {/* ANALYTICS Section */} Sekce{' '} Analytics kombinuje statistiky z Umami a interních metrik systému. Sledujte návštěvnost, interakce a výkon jednotlivých stránek. Přehled návštěv podle časového období a zdrojů. Top články, nejčtenější kategorie a popularita videí. Informace o přihláškách k newsletteru a konverzích formulářů. Podrobný postup integrace najdete v souboru `UMAMI_SETUP_WITH_CLUB_NAME.md`. Doporučujeme nastavit i `UMAMI_ADMIN_EXCLUSION.md`, aby se nezapočítávaly administrátorské návštěvy. Zpět na začátek {/* SCOREBOARD Section */} Scoreboard v{' '} Tabuli používá data ze zápasů a umožňuje připravit grafiku na klubové obrazovky. Vyberte soutěž a konkrétní zápas pro zobrazení. Nastavte barevné téma v souladu s brandingem klubu. Exportujte URL pro sdílení na velkoplošných displejích. Scoreboard vyžaduje aktuální data z FAČR. Pokud se zápas nezobrazuje, ověřte nastavení v sekci Alias soutěží a spusťte Prefetch. Zpět na začátek {/* MOBILE SCOREBOARD Section */} Pro ovládání tabule na dálku použijte{' '} Mobilní scoreboard. Umožňuje aktualizovat skóre v průběhu utkání přímo z telefonu. Přihlaste se stejným účtem jako v administraci. Vyberte zápas, který sledujete, a nastavte skóre i čas. Ověřte internetové připojení – změny se synchronizují okamžitě na veřejné tabuli. Funkce je optimalizovaná pro PWA. Přidejte si ji na domovskou obrazovku pro rychlý přístup. Zpět na začátek {/* UŽIVATELÉ Section */} Spravujte přístupy administrátorů i redaktorů, nastavujte role a resetujte hesla. V{' '} Uživatelích přidejte nové účty a přidělte roli admin nebo user. Pro reset hesla využijte nástroj{' '} Odeslat reset. Doporučujeme zapnout dvoufaktorové ověření na e-mailových účtech administrátorů. Zpět na začátek {/* DOCS Section */} V repozitáři najdete rozsáhlé manuály k jednotlivým oblastem. Doporučujeme projít alespoň tyto: FRONTEND_FUNCTIONALITY_REPORT.md – podrobný popis veřejného webu. BACKEND_FUNCTIONALITY_REPORT.md – vysvětlení API a datových toků. NEWSLETTER_SYSTEM.md a FILES_MANAGEMENT_SYSTEM.md – detailní pracovní postupy. Kompletní seznam manuálů najdete v adresáři `docs/` (kořen projektu). Dokumenty jsou průběžně aktualizované – sledujte datum poslední revize. Zpět na začátek {/* CHECKLIST Section */} Pro rychlé spuštění nových funkcí využijte připravené checklisty. Najdete je v kořenovém adresáři projektu a v administraci slouží jako doplněk k této dokumentaci. NEWSLETTER_FEATURE_CHECKLIST.md – krok za krokem konfigurace newsletteru. FILES_MANAGEMENT_TESTING.md – co ověřit, než nasadíte novou sadu souborů. MAP_IMPORT_COMPLETE_IMPLEMENTATION.md a související checklisty pro import mapových dat. Checklisty si můžete stáhnout jako PDF a sdílet v rámci klubu – usnadníte tak zaškolení nových členů týmu. Zpět na začátek {/* SEO Section */} Správné SEO nastavení a analytika vám pomůžou sledovat návštěvnost webu a optimalizovat obsah. U každého článku vyplňte SEO titulek, SEO popis a slug bez diakritiky. Integrujte službu{' '} Umami Analytics dle průvodce v souboru `UMAMI_SETUP_WITH_CLUB_NAME.md`. Pro sociální sítě doplňte Open Graph a Twitter metatagy v nastavení. Auditujte SEO pravidelně — jednoduché úpravy nadpisů a popisů výrazně zlepší dosah. Zpět na začátek {/* TROUBLESHOOTING Section */}

E-maily se neodesílají

Zkontrolujte SMTP nastavení v{' '} Nastavení Ověřte port: 465 = SSL, 587 = STARTTLS Gmail vyžaduje „App Password", ne běžné heslo Zkuste odeslat testovací e-mail z Newsletteru Zkontrolujte serverové logy pro chybové hlášky

Obrázky se nezobrazují

Nahrajte obrázek do{' '} Média Použijte relativní cestu: /uploads/2025/01/obrazek.jpg Pro externí zdroje použijte proxy: /api/v1/proxy/image?url=... Zkontrolujte, že soubor existuje a je veřejně přístupný

FAČR data nejsou aktuální

Spusťte{' '} Prefetch {' '} ručně Zkontrolujte Club ID a Club Type v Nastavení Ověřte čas posledního běhu v Prefetch statusu Zkontrolujte internetové připojení serveru

Nelze se přihlásit

Ověřte e-mail a heslo (hesla jsou case-sensitive) Použijte „Zapomenuté heslo" pro reset Zkontrolujte, že účet má roli admin Vyčkejte 5 minut po několika neúspěšných pokusech (ochrana proti brute-force)
Potřebujete pomoc? Pokud problém přetrvává nebo si nevíte rady, zkuste nejprve tyto kroky: Vymažte cache (mezipaměť) prohlížeče a obnovte stránku (Ctrl+F5) Zkuste jiný prohlížeč (Chrome, Firefox, Edge) Odhlaste se a přihlaste znovu Zkontrolujte internetové připojení Stále nefunguje? Ozvěte se nám! Napište nám na{' '} help@tdvorak.dev {' '}a popište problém. Odpovídáme do 24 hodin a rádi vám pomůžeme! Tip: Do e-mailu přiložte screenshot problému, urychlíte tím řešení.
Zpět na začátek
{/* SUPPORT SECTION */} Potřebujete pomoc? Máte dotazy, narazili jste na problém nebo hledáte vlastní úpravy a rozšíření systému? Technická podpora help@tdvorak.dev Odpovídáme do 24 hodin Vlastní úpravy a implementace Chcete přidat nové funkce nebo přizpůsobit systém vašim specifickým potřebám?
Kontaktujte nás a společně zjistíme, zda je vaše představa realizovatelná.
Rádi vám pomůžeme rozšířit systém dle vašich požadavků!
{/* FOOTER */} Dokumentace administračního systému • Verze 1.0 Poslední aktualizace: {new Date().toLocaleDateString('cs-CZ')} Vytvořeno pro snadnou správu klubových webů • Žádné technické znalosti nejsou nutné
); }; export default AdminDocsPage;