update
This commit is contained in:
131
.paul/phases/01-homepage-blog-zajawki/01-01-PLAN.md
Normal file
131
.paul/phases/01-homepage-blog-zajawki/01-01-PLAN.md
Normal file
@@ -0,0 +1,131 @@
|
||||
---
|
||||
phase: 01-homepage-blog-zajawki
|
||||
plan: 01
|
||||
type: execute
|
||||
wave: 1
|
||||
depends_on: []
|
||||
files_modified:
|
||||
- modules/projectproblog/projectproblog.php
|
||||
- modules/projectproblog/classes/BlogPost.php
|
||||
- modules/projectproblog/views/templates/hook/home.tpl
|
||||
- modules/projectproblog/views/css/blog.css
|
||||
autonomous: true
|
||||
---
|
||||
|
||||
<objective>
|
||||
## Goal
|
||||
Dodac sekcje blogowa na stronie glownej, ktora wyswietla 3 najnowsze aktywne wpisy jako zajawki i zawiera naglowek sekcji.
|
||||
|
||||
## Purpose
|
||||
Uzytkownik sklepu ma od razu na homepage widoczny aktualny content bloga, co wspiera ruch do sekcji /blog i ekspozycje marki.
|
||||
|
||||
## Output
|
||||
Hook `displayHome` w module `projectproblog`, pobranie 3 ostatnich wpisow, render sekcji z kartami wpisow i stylami.
|
||||
</objective>
|
||||
|
||||
<context>
|
||||
## Project Context
|
||||
@.paul/PROJECT.md
|
||||
@.paul/ROADMAP.md
|
||||
@.paul/STATE.md
|
||||
|
||||
## Source Files
|
||||
@modules/projectproblog/projectproblog.php
|
||||
@modules/projectproblog/classes/BlogPost.php
|
||||
@modules/projectproblog/views/templates/front/list.tpl
|
||||
@modules/projectproblog/views/css/blog.css
|
||||
@themes/classic/templates/index.tpl
|
||||
</context>
|
||||
|
||||
<acceptance_criteria>
|
||||
|
||||
## AC-1: Sekcja blogowa widoczna na homepage
|
||||
```gherkin
|
||||
Given modul projectproblog jest zainstalowany i ma aktywne wpisy
|
||||
When uzytkownik otwiera strone glowna sklepu
|
||||
Then widzi sekcje z naglowkiem i 3 zajawkami najnowszych wpisow bloga
|
||||
```
|
||||
|
||||
## AC-2: Zajawki odzwierciedlaja wpisy i prowadza do detailu
|
||||
```gherkin
|
||||
Given sekcja blogowa jest wyswietlona na stronie glownej
|
||||
When uzytkownik widzi zajawki wpisow
|
||||
Then kazda zajawka pokazuje tytul, date, intro, miniaturke (jezeli jest) i link do strony wpisu
|
||||
```
|
||||
|
||||
## AC-3: Brak regresji gdy brak wpisow
|
||||
```gherkin
|
||||
Given brak aktywnych wpisow blogowych
|
||||
When uzytkownik otwiera strone glowna
|
||||
Then sekcja blogowa nie powoduje bledow renderowania i nie psuje ukladu strony
|
||||
```
|
||||
|
||||
</acceptance_criteria>
|
||||
|
||||
<tasks>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 1: Dodaj dane i hook displayHome dla modulu bloga</name>
|
||||
<files>modules/projectproblog/projectproblog.php, modules/projectproblog/classes/BlogPost.php</files>
|
||||
<action>
|
||||
Rozszerz modul o obsluge homepage:
|
||||
- Zarejestruj hook `displayHome` podczas instalacji.
|
||||
- Dodaj implementacje `hookDisplayHome`, ktora pobierze 3 najnowsze aktywne wpisy.
|
||||
- W `BlogPost` dodaj metode do pobierania limitowanej listy najnowszych wpisow dla jezyka (sortowanie po `date_add DESC`, tylko `active=1`).
|
||||
- Wzbogac dane o URL wpisu i URL miniatury analogicznie do listy bloga.
|
||||
Unikaj: zmian SQL i zmian w strukturze tabel (nie sa potrzebne do tej funkcji).
|
||||
</action>
|
||||
<verify>php -l modules/projectproblog/projectproblog.php && php -l modules/projectproblog/classes/BlogPost.php</verify>
|
||||
<done>AC-1 i AC-2 spelnione po stronie backendu danych i hooka</done>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 2: Wyrenderuj sekcje zajawkowa bloga na homepage</name>
|
||||
<files>modules/projectproblog/views/templates/hook/home.tpl, modules/projectproblog/views/css/blog.css, modules/projectproblog/projectproblog.php</files>
|
||||
<action>
|
||||
Dodaj szablon hooka home oraz stylowanie:
|
||||
- Utworz `views/templates/hook/home.tpl` z naglowkiem sekcji i 3 kartami wpisow.
|
||||
- Zachowaj wizualna spojnosc z kartami z `/blog` (tytul, intro, data, CTA).
|
||||
- Podlacz CSS dla sekcji homepage (dedykowane klasy, bez ingerencji w globalny layout sklepu).
|
||||
- W `hookDisplayHome` przypisz zmienne Smarty (`blog_home_title`, `blog_home_posts`, `blog_url`) i zwroc szablon tylko gdy sa wpisy.
|
||||
Unikaj: edycji plikow szablonu motywu (`themes/*`) - sekcja ma wejsc przez hook modułu.
|
||||
</action>
|
||||
<verify>Rebuild cache smarty (jesli wymagane) i reczny test: otworz homepage i potwierdz widocznosc sekcji oraz linkowanie do wpisu i /blog</verify>
|
||||
<done>AC-1, AC-2 i AC-3 spelnione w warstwie UI</done>
|
||||
</task>
|
||||
|
||||
</tasks>
|
||||
|
||||
<boundaries>
|
||||
|
||||
## DO NOT CHANGE
|
||||
- `themes/*` (brak edycji motywu poza istniejacym mechanizmem hooka)
|
||||
- `modules/projectproblog/sql/*` (brak zmian schematu bazy)
|
||||
- Kontrolery blog list/post (chyba ze wyjdzie krytyczna koniecznosc kompatybilnosci)
|
||||
|
||||
## SCOPE LIMITS
|
||||
- Zakres obejmuje tylko homepage i tylko 3 ostatnie wpisy.
|
||||
- Brak zmian w panelu administracyjnym bloga.
|
||||
- Brak nowych opcji konfiguracyjnych modułu w BO na tym etapie.
|
||||
|
||||
</boundaries>
|
||||
|
||||
<verification>
|
||||
Before declaring plan complete:
|
||||
- [ ] `php -l modules/projectproblog/projectproblog.php`
|
||||
- [ ] `php -l modules/projectproblog/classes/BlogPost.php`
|
||||
- [ ] Homepage wyswietla sekcje bloga z 3 wpisami i naglowkiem
|
||||
- [ ] Linki z kart prowadza do poprawnych URL wpisow blogowych
|
||||
- [ ] Przy pustej bazie wpisow homepage renderuje sie bez bledow
|
||||
- [ ] All acceptance criteria met
|
||||
</verification>
|
||||
|
||||
<success_criteria>
|
||||
- Hook `displayHome` z modulem bloga dziala i zwraca sekcje tylko gdy sa wpisy.
|
||||
- Sekcja homepage prezentuje 3 najnowsze wpisy jako zajawki zgodne wizualnie z `/blog`.
|
||||
- Implementacja nie powoduje regresji na homepage i w module bloga.
|
||||
</success_criteria>
|
||||
|
||||
<output>
|
||||
After completion, create `.paul/phases/01-homepage-blog-zajawki/01-01-SUMMARY.md`
|
||||
</output>
|
||||
Reference in New Issue
Block a user