This commit is contained in:
2026-04-06 10:40:29 +02:00
parent 6d4edce0bd
commit dcfd03e9ac
11 changed files with 447 additions and 1 deletions

28
.paul/PROJECT.md Normal file
View File

@@ -0,0 +1,28 @@
# Project: kikiriki.sklep.pl
## Description
Teraz potrzebuje rozbudowac modul bloga, ale generalnie rozbudowujemy PrestaShop o nowe funkcje dla klienta.
## Core Value
Sklep oparty na PrestaShop, ktory jest rozwijany o funkcje dopasowane do potrzeb klienta.
## Requirements
### Must Have
- [To be defined during planning]
### Should Have
- [To be defined during planning]
### Nice to Have
- [To be defined during planning]
## Constraints
- [To be identified during planning]
## Success Criteria
- Sklep oparty na PrestaShop, ktory jest rozwijany o funkcje dopasowane do potrzeb klienta. is achieved
- [To be refined during planning]
---
*Created: 2026-04-06 10:16*

35
.paul/ROADMAP.md Normal file
View File

@@ -0,0 +1,35 @@
# Roadmap: kikiriki.sklep.pl
## Overview
Teraz potrzebuje rozbudowac modul bloga, ale generalnie rozbudowujemy PrestaShop o nowe funkcje dla klienta.
## Current Milestone
**v0.1 Initial Release** (v0.1.0)
Status: In progress
Phases: 0 of 1 complete
## Phases
| Phase | Name | Plans | Status | Completed |
|-------|------|-------|--------|-----------|
| 1 | Homepage blog zajawki | 1 | Planning | - |
## Phase Details
### Phase 1: Homepage blog zajawki
**Goal:** Wyswietlic na stronie glownej 3 najnowsze wpisy bloga jako zajawki oraz sekcje z naglowkiem.
**Depends on:** Nothing (first phase)
**Research:** Unlikely (korzystamy z istniejacego modulu i widokow)
**Scope:**
- Dodanie hooka home w module bloga
- Pobranie i przygotowanie 3 najnowszych aktywnych wpisow
- Render sekcji na homepage w stylu zblizonym do listy /blog
**Plans:**
- [ ] 01-01: Sekcja "Najnowsze na blogu" na homepage z 3 zajawkami
---
*Roadmap created: 2026-04-06 10:16*
*Last updated: 2026-04-06 10:18*

28
.paul/STATE.md Normal file
View File

@@ -0,0 +1,28 @@
# Project State
## Current Position
Milestone: v0.1 Initial Release
Phase: 1 of 1 (Homepage blog zajawki) - Applying
Plan: 01-01 execution complete
Status: APPLY complete, ready for UNIFY
Last activity: 2026-04-06 10:20 - Applied .paul/phases/01-homepage-blog-zajawki/01-01-PLAN.md
Progress:
- Milestone: [######----] 60%
- Phase 1: [######----] 60%
## Loop Position
Current loop state:
```
PLAN --> APPLY --> UNIFY
x x o [Apply complete, ready for unify]
```
## Session Continuity
Last session: 2026-04-06 10:20
Stopped at: Apply completed for plan 01-01
Next action: Run $paul-unify .paul/phases/01-homepage-blog-zajawki/01-01-PLAN.md
Resume file: .paul/phases/01-homepage-blog-zajawki/01-01-PLAN.md

25
.paul/paul.json Normal file
View File

@@ -0,0 +1,25 @@
{
"name": "kikiriki.sklep.pl",
"version": "0.0.0",
"milestone": {
"name": "None",
"version": "0.0.0",
"status": "not_started"
},
"phase": {
"number": 0,
"name": "None",
"status": "not_started"
},
"loop": {
"plan": null,
"position": "IDLE"
},
"timestamps": {
"created_at": "2026-04-06T10:16:24.3023021+02:00",
"updated_at": "2026-04-06T10:16:24.3023021+02:00"
},
"satellite": {
"groom": true
}
}

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