varsite / cms
Moduł CMS dla Varsite Platform — strony treści z API publicznym.
v0.11.0
2026-08-11 08:02 UTC
Requires
- php: ^8.3
- illuminate/database: ^12.0|^13.0
- illuminate/http: ^12.0|^13.0
- illuminate/support: ^12.0|^13.0
- varsite/platform: ^0.11
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Moduł treści dla Varsite Platform — referencyjna implementacja modułu.
composer require varsite/cms php artisan varsite:module install cms
Po instalacji panel zyskuje ekran „Strony", grupę ustawień i wpisy w palecie poleceń oraz wyszukiwarce globalnej. Bez żadnej zmiany w rdzeniu i w panelu.
Co udostępnia
| Element | Szczegóły |
|---|---|
| Zasób panelu | cms.pages — lista z wyszukiwaniem i filtrem statusu, formularz, usuwanie |
| Ustawienia | cms.ogolne — strona główna, sufiks tytułu SEO, domyślny opis |
| API administracyjne | /api/v1/admin/cms/pages (CRUD, wymaga uprawnień) |
| API publiczne | /api/v1/cms/pages, /api/v1/cms/pages/{slug} — wyłącznie strony opublikowane |
| Uprawnienia | cms.view, cms.create, cms.update, cms.delete, cms.settings |
Wzorzec dla kolejnych modułów
CmsServiceProvider pokazuje komplet rozszerzeń w jednym miejscu:
- Tożsamość —
ModuleManager::register(new CmsModule()): klucz, etykieta, uprawnienia. - Trasy —
ModuleRouteRegistrarosobno dla API administracyjnego i publicznego. - Polityka —
Gate::policy(...); moduł deklaruje identyfikatory uprawnień, o ich posiadaniu decyduje wyłącznie rdzeń. - Możliwości —
ResourceCapabilityiSettingCapabilitywCapabilityRegistry.
Nawigacja, paleta poleceń i wyszukiwarka globalna wynikają z możliwości —
moduł nie deklaruje pozycji menu ani nie implementuje API wyszukiwania.
Wystarczy Filter::search([...]) w deklaracji zasobu.
Konsumpcja przez frontend klienta
const { data } = await fetch(`${API}/v1/cms/pages/o-nas`).then((r) => r.json()); // data: { slug, title, excerpt, content, seo: { title, description }, published_at }
Treść zapisywana jest jako Markdown; renderowanie należy do frontendu klienta — platforma nie narzuca sposobu prezentacji.