85 lines
2.7 KiB
Markdown
85 lines
2.7 KiB
Markdown
# 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
|