# Krok 11 - Wizard - Moduly a Formulár (Krok 5) ## Kontext projektu V poslednom kroku zberu dát si používateľ vyberá sekcie webu a konfiguruje kontaktný formulár (SMTP alebo lokálny mód). ## Pred implementáciou si preštuduj - `docs/wizard.md` - Sekcia 6 (Krok 5 - Moduly webu a kontaktny formular). - `docs/mvp.md` - Sekcia 9 (Kontaktny formular). ## Cieľ Implementovať výber sekcií webu a konfiguráciu kontaktného formulára vrátane zabezpečeného uloženia hesla pre lokálny mód. ## Požadované zmeny 1. Na frontende (`index.html` + `wizard.js`): - Checkboxy pre výber sekcií (Hero, O nás, Služby, Cenník, Galéria, FAQ, Kontakt). - Prepínač pre kontaktný formulár (Zapnutý/Vypnutý). - Výber módu formulára: SMTP alebo Lokálny. - Polia pre SMTP (Host, Port, User, Pass, atď.). - Pole pre heslo k lokálnemu módu. 2. Na backende (`ajax.php`): - Implementácia validácie pre krok 5. - Pri lokálnom móde: Heshovanie hesla pomocou `password_hash()` pred uložením do `wizard_data`. - Uloženie do `wizard_data.modules`. ## Implementačné pravidlá - Heslo pre lokálny mód sa nikdy neukladá v plain-texte. - Sekcia "Hero" a "Kontakt" by mali byť predvolene vybrané. ## Súbory ktoré je potrebné vytvoriť Žiadne. ## Súbory ktoré je potrebné upraviť - `public/index.html` (DOM pre Krok 5) - `public/js/wizard.js` (logika pre Krok 5) - `public/ajax.php` (validácia a heshovanie hesla) ## API a dátové štruktúry Payload pre `saveStep`: ```json { "step": 5, "data": { "modules": { "pages": ["home"], "sections": ["hero", "about", "services", "contact"], "contact_form": { "enabled": true, "mode": "local", "smtp": null, "local_viewer": { "password_hash": "..." } } } } } ``` ## Frontend požiadavky - Podmienené zobrazenie polí pre SMTP vs Lokálny mód. - Validácia sily hesla (voliteľne). ## Backend požiadavky - Použitie `PASSWORD_DEFAULT` pre `password_hash`. ## Testovací scenár 1. Vyber sekcie "Hero", "O nás" a "Kontakt". 2. Zvoľ Lokálny mód formulára a zadaj heslo "mojeheslo123". 3. Klikni na "Pokračovať". 4. Over v JSONe projektu, či je v `contact_form.local_viewer.password_hash` uložený hash, nie plain-text. ## Definition of Done - Konfigurácia modulov a formulára je uložená. - Heslo pre lokálny prehliadač správ je bezpečne zaheshované. - UI správne prepína medzi módmi formulára. ## Obmedzenia - Žiadne odosielanie testovacích mailov v tomto kroku. ## Výstup - zoznam vytvorených súborov - zoznam upravených súborov - stručné zhrnutie vykonaných zmien - prípadné otvorené problémy