4.9 KiB
4.9 KiB
phase, plan, type, wave, depends_on, files_modified, autonomous
| phase | plan | type | wave | depends_on | files_modified | autonomous | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| 01-homepage-blog-zajawki | 01 | execute | 1 |
|
true |
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.
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
<acceptance_criteria>
AC-1: Sekcja blogowa widoczna na homepage
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
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
Given brak aktywnych wpisow blogowych
When uzytkownik otwiera strone glowna
Then sekcja blogowa nie powoduje bledow renderowania i nie psuje ukladu strony
</acceptance_criteria>
Task 1: Dodaj dane i hook displayHome dla modulu bloga modules/projectproblog/projectproblog.php, modules/projectproblog/classes/BlogPost.php 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). php -l modules/projectproblog/projectproblog.php && php -l modules/projectproblog/classes/BlogPost.php AC-1 i AC-2 spelnione po stronie backendu danych i hooka Task 2: Wyrenderuj sekcje zajawkowa bloga na homepage modules/projectproblog/views/templates/hook/home.tpl, modules/projectproblog/views/css/blog.css, modules/projectproblog/projectproblog.php 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. Rebuild cache smarty (jesli wymagane) i reczny test: otworz homepage i potwierdz widocznosc sekcji oraz linkowanie do wpisu i /blog AC-1, AC-2 i AC-3 spelnione w warstwie UIDO 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.
<success_criteria>
- Hook
displayHomez 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>