Architektura a Datový Model
Technický Přehled
Modul Forms je postaven na architektuře, která využívá metadata framework EspoCRM pro definici chování entit jako formulářů.
Entity Manager Rozšíření
Modul registruje nový typ šablony entity: Form.
- Template Type:
Form - Třída:
Espo\Modules\Forms\Core\Templates\Entities\Form
Metadata a Konfigurace
Při vytvoření nové entity typu "Formulář" přes Entity Manager se dějí následující akce (via FormCreateHook):
- Metadata: Vytvoří se definice formuláře v
custom/Espo/Custom/Resources/metadata/clientDefs/{EntityName}.json. - Layout: Vygeneruje se výchozí rozložení polí.
- Scope: Zaregistruje se nový scope (modul) v systému.
- FormDefs: Nastaví se speciální definice pro zpracování formuláře (
formDefs), které určují:accessCheckerClassName: Třída pro kontrolu oprávnění (public access).dataPreparatorClassName: Příprava dat před zobrazením.processorClassName: Logika zpracování odeslaných dat.
Workflow Zpracování
- Zobrazení: Frontend aplikace (Vue.js) načte definici formuláře přes veřejné API.
- Odeslání: Uživatel vyplní data a odešle formulář.
- Validace: Backend validuje vstupní data dle definice entity.
- Uložení: Vytvoří se standardní záznam entity v databázi.
Datový Model
Modul nevytváří jednu centrální tabulku "Forms". Místo toho umožňuje, aby se jakákoliv entita chovala jako formulář. Data jsou ukládána do tabulky příslušné entity.
Příklad: Kontaktní formulář
Pokud vytvoříte formulář "WebContact":
- Vznikne entita
WebContact. - Data se ukládají do tabulky
web_contact.