- Created SQL installation scripts for categories and posts tables. - Added uninstall scripts to drop the created tables. - Introduced CSS styles for blog layout, including responsive design for posts and categories. - Implemented PHP redirection in index files to prevent direct access. - Developed Smarty templates for blog category tree, post list, and individual post details. - Ensured proper caching headers in PHP files to enhance performance.
68 lines
2.7 KiB
Markdown
68 lines
2.7 KiB
Markdown
# 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 <head>
|
|
- 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
|