Přeskočit na hlavní obsah

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):

  1. Metadata: Vytvoří se definice formuláře v custom/Espo/Custom/Resources/metadata/clientDefs/{EntityName}.json.
  2. Layout: Vygeneruje se výchozí rozložení polí.
  3. Scope: Zaregistruje se nový scope (modul) v systému.
  4. 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í

  1. Zobrazení: Frontend aplikace (Vue.js) načte definici formuláře přes veřejné API.
  2. Odeslání: Uživatel vyplní data a odešle formulář.
  3. Validace: Backend validuje vstupní data dle definice entity.
  4. 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.