Skip to content

Architektura ​

Renick.Content má tři vrstvy:

  1. Obsah. Dokument je seznam typovaných bloků uložený jako JSON v hostitelském poli: v záznamu Tailoru, atributu modelu, stránce RainLab.Pages nebo příspěvku RainLab.Blog. Formát definuje JSON Schema v1; každý zápis se validuje.
  2. Editor. Ostrůvek TipTap 3 / React 19, který vkládá form widget contenteditor. Bundle v assets/dist je commitnutý, takže instalace nikdy nespouští JS toolchain.
  3. Vykreslování. BlockRenderer převádí JSON na HTML při každém požadavku (přes renickContent, content_render() nebo |rc_blocks) a pravidla viditelnosti uplatňuje na serveru.

Mapa komponent ​

Při uložení DocumentSaveGuard dokument normalizuje, přísně validuje a zkontroluje BlockRules. Porušení pravidel, která uložený dokument už měl, uložení neblokují. Po uložení hostitele se zachytí verze a aktualizuje se index využití médií.

Dokument žije v hostiteli. Vlastní tabulky pluginu jsou pomocné: renick_content_versions (snapshoty, auditní log), renick_content_templates, renick_content_media_usage, renick_content_shared (Sdílený obsah), renick_content_scripts (Vlastní skripty), renick_content_api_tokens (hashované) a renick_content_ai_usage (měsíční rozpočet AI).

Kde co žije ​

plugins/renick/content/
├── Plugin.php          # registrations only
├── routes.php          # REST API (off by default), tile/thumb proxies, form endpoints
├── blocks/             # <handle>/<handle>.yaml definition + <handle>.htm partial
├── classes/            # renderer, document model, Content/ContentApi facades, Integrations/, TailorList/, ai/
├── components/         # renickContent, Entry List, submission form
├── contentfields/      # Tailor content field
├── controllers/        # backend pages (tokens, audit log, scripts, shared content, templates)
├── formwidgets/        # ContentEditor, icon picker
├── console/            # renick:content:* commands
├── models/
├── schema/document-v1.json
├── assets/             # src/ editor source; dist/ and frontend/ committed bundles
└── tests/              # PHPUnit; Playwright e2e lives in /tests-e2e

Začněte stránkami Hostování pole, Tvorba bloků, PHP API nebo REST API.