Files
kikiriki.sklep.pl/.paul/phases/01-homepage-blog-zajawki/01-01-PLAN.md
2026-04-06 10:40:29 +02:00

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
modules/projectproblog/projectproblog.php
modules/projectproblog/classes/BlogPost.php
modules/projectproblog/views/templates/hook/home.tpl
modules/projectproblog/views/css/blog.css
true
## 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.

## 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

<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 UI

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.
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

<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>
After completion, create `.paul/phases/01-homepage-blog-zajawki/01-01-SUMMARY.md`