# Plan modułu Blog — Project-Pro Blog ## Dane modułu - Nazwa wyświetlana: `Project-Pro Blog` - Nazwa techniczna (katalog/klasa): `projectproblog` - Autor: `Project-Pro` - URL autora: `https://www.project-pro.pl` - PrestaShop: 1.7.8.11 ## Etapy ### Etap 1 — Baza danych Tabele z prefiksem `pr_projectproblog_`: - `category` — id, id_parent, active, position, date_add, date_upd - `category_lang` — id_category, id_lang, name, description, link_rewrite, meta_title, meta_keywords, meta_description - `post` — id, active, thumbnail, date_add, date_upd - `post_lang` — id_post, id_lang, title, intro, content, link_rewrite, meta_title, meta_keywords, meta_description - `post_category` — id_post, id_category (relacja many-to-many) ### Etap 2 — Szkielet modułu (`projectproblog.php`) - Klasa `Projectproblog extends Module` - install() → SQL + taby admina + hooki - uninstall() → drop tabel + usunięcie tabów - Rejestracja ModuleFrontController (przyjazne URL-e) - Konfiguracja: liczba wpisów na stronę (domyślnie 9) ### Etap 3a — Admin: kategorie (`AdminProjectproBlogCategoriesController`) - Lista: nazwa, rodzic, aktywna, pozycja - Formularz (multilang): nazwa, opis, link_rewrite, meta_title/keywords/description - Pola: id_parent (select), active (toggle), position ### Etap 3b — Admin: wpisy (`AdminProjectproBlogPostsController`) - Lista: miniaturka, tytuł, kategorie, data dodania, aktywny - Formularz (multilang): tytuł, wstęp, treść (TinyMCE), link_rewrite, meta_title/keywords/description - Upload miniaturki z podglądem - Checkboxy przypisania do wielu kategorii - Toggle aktywny, daty auto ### Etap 4a — Front: lista (`list.php` ModuleFrontController) - URL: /blog i /blog/kategoria/{link_rewrite} - Filtrowanie po kategorii, stronicowanie - Dane do Smarty: wpisy, drzewo kategorii, bieżąca kategoria, paginacja ### Etap 4b — Front: szczegół (`post.php` ModuleFrontController) - URL: /blog/wpis/{link_rewrite} - Meta title/description/keywords w - Dane: wpis, kategorie wpisu, breadcrumb ### Etap 5 — Szablony Smarty - `list.tpl` — layout 2-kolumnowy: lewa=drzewo kategorii, prawa=siatka wpisów 2-kol + paginacja - `post.tpl` — miniaturka, h1, wstęp wyróżniony, treść HTML, daty, breadcrumb - `_category-tree.tpl` — partial z drzewem (include w list.tpl) ### Etap 6 — Routing i SEO - Trasy: /blog, /blog/kategoria/{slug}, /blog/wpis/{slug} - link_rewrite generowany z tytułu - Canonical URL w szablonach ## Status etapów - [x] Etap 1 — Baza danych - [x] Etap 2 — Szkielet modułu - [x] Etap 3a — Admin kategorie - [x] Etap 3b — Admin wpisy - [x] Etap 4a — Front lista - [x] Etap 4b — Front szczegół - [x] Etap 5 — Szablony - [x] Etap 6 — Routing i SEO