# Modular CMS Framework

## Fejlesztői dokumentáció

Üdvözöllek a Modular CMS Framework dokumentációjában.

Ez a dokumentáció nem csupán a forráskód leírása, hanem a rendszer mögötti gondolkodásmódot is bemutatja.

A cél, hogy egy új fejlesztő néhány óra alatt átlássa a teljes architektúrát, és képes legyen új modulokat készíteni a meglévő szabványok szerint.

---

# A projekt célja

A CMS célja egy modern, moduláris webes keretrendszer létrehozása, amely ugyanazzal a motorral képes kezelni:

- egyszerű céges weboldalakat
- többoldalas weboldalakat
- landing page-eket
- webshopokat
- később portálokat és speciális rendszereket

A rendszer nem egy WordPress klón.

Minden modul önállóan működik, mégis ugyanazt az architektúrát követi.

---

# Alapelvek

A fejlesztés során az alábbi elvek érvényesülnek.

## Moduláris felépítés

Minden funkció külön modul.

Például:

- Gallery
- Video
- Documents
- Popup
- Contact
- FAQ
- Testimonials

A modulok egymástól függetlenek.

---

## Single Responsibility Principle

Minden osztálynak egyetlen feladata van.

Például:

ThemeService

→ csak az oldal összeállításáért felel.

GalleryService

→ csak galériákat kezel.

AssetService

→ csak CSS és JavaScript fájlokat kezel.

Hook

→ csak eseményeket kezel.

---

## Egységes modulstruktúra

Minden modul ugyanazokat az elemeket tartalmazza.

```
Migration

↓

Model

↓

Admin Controller

↓

Admin Views

↓

Service

↓

Layouts

↓

CSS

↓

JavaScript

↓

Shortcode

↓

AssetService

↓

HTML
```

Ez biztosítja, hogy minden modul ugyanúgy működjön.

---

# Dokumentáció felépítése

## 01_CMS_ARCHITECTURE.md

A rendszer teljes architektúrája.

Ajánlott elsőként elolvasni.

---

## 02_REQUEST_LIFECYCLE.md

Bemutatja egy HTTP kérés teljes életútját.

Browser

↓

Route

↓

Controller

↓

Service

↓

ThemeService

↓

Layout

↓

HTML

---

## 03_MODULE_GUIDE.md

Új modul készítésének szabályai.

Kötelező olvasmány modulfejlesztés előtt.

---

## 04_ASSET_SYSTEM.md

A CSS és JavaScript kezelésének dokumentációja.

Bemutatja:

- AssetService
- static registry
- CSS betöltés
- JS betöltés

---

## 05_HOOK_SYSTEM.md

A Hook rendszer működése.

Mikor használjuk?

Mikor nem?

Hogyan működik?

---

## 06_SHORTCODE_SYSTEM.md

A shortcode rendszer.

Példák:

```
{{gallery:munkaink}}

{{video:bemutato}}

{{documents:letoltes}}

{{contact}}
```

---

## 07_THEME_SYSTEM.md

A ThemeService működése.

Layoutok

Theme-ek

Oldal renderelése

---

## 08_LAYOUT_SYSTEM.md

Layout rendszer.

Miért különül el a Service és a Layout?

Miért több layout?

---

## 09_DATABASE_CONVENTIONS.md

Adatbázis szabványok.

Táblaelnevezések

Kapcsolatok

Nyelvi táblák

Indexek

---

## 10_MODULE_TEMPLATE.md

Egy komplett mintamodul.

Ennek alapján készül minden új modul.

---

## ROADMAP.md

A projekt jelenlegi állapota.

Fejlesztési tervek.

Prioritások.

---

# Fejlesztési szabályok

✔ Controller csak koordinál.

✔ Service tartalmazza az üzleti logikát.

✔ Model csak adatbázist kezel.

✔ Layout csak HTML.

✔ Modulonként külön CSS.

✔ Modulonként külön JavaScript.

✔ AssetService használata kötelező.

✔ Hook használata automatikus moduloknál.

✔ Shortcode használata szerkesztőből beszúrható moduloknál.

---

# A rendszer fő komponensei

```
Browser

↓

Routes

↓

Controller

↓

ThemeService

↓

PageResolver

↓

Service

↓

Layout

↓

AssetService

↓

site.php

↓

HTML
```

---

# Modulok

## Elkészült

- CMS Pages
- Menu
- Gallery
- Video Gallery
- Documents
- Contact Form
- Marketing Popup

---

## Tervezett

- FAQ
- Hero
- Testimonials
- Counter
- Logos
- Team
- Timeline
- Pricing
- Before / After
- Slider

---

# Dokumentáció használata

Ha új fejlesztőként érkezel a projekthez, az ajánlott sorrend:

1. README.md
2. 01_CMS_ARCHITECTURE.md
3. 02_REQUEST_LIFECYCLE.md
4. 04_ASSET_SYSTEM.md
5. 05_HOOK_SYSTEM.md
6. 03_MODULE_GUIDE.md
7. ROADMAP.md

Ezután már könnyen átlátható a teljes rendszer.

---

# Verziózás

A dokumentáció a CMS fejlesztésével együtt változik.

Minden új modul elkészülése után frissíteni kell:

- ROADMAP.md
- MODULE_TEMPLATE.md
- SHORTCODES.md
- szükség esetén az architektúra dokumentációját is.

---

# Záró gondolat

A projekt célja nem csupán egy működő CMS létrehozása.

A cél egy olyan hosszú távon karbantartható, moduláris keretrendszer megalkotása, amelyben minden új fejlesztés ugyanazokat az architekturális elveket követi.

A következetesség fontosabb, mint az egyedi megoldások.

Ha egy új modul illeszkedik a meglévő struktúrába, akkor a rendszer hosszú távon is egyszerűen bővíthető és karbantartható marad.