Files
WebWizard/docs/prompts/step11.md
2026-06-12 12:54:10 +02:00

2.7 KiB

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:

{
  "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