definePageLayout(), um ein Layout für ein Objekt zu deklarieren, das Sie besitzen, oder definePageLayoutTab(), um einen einzelnen Tab zu einem Layout hinzuzufügen, das bereits existiert (Ihr eigenes oder ein standardmäßiges Twenty-Layout).
| Anwendungsfall | Entität |
|---|---|
| Definieren Sie das gesamte Layout für die Datensatzseite eines Objekts, das Sie besitzen | definePageLayout |
| Fügen Sie einem vorhandenen Layout einen Tab hinzu (Ihr eigenes Objekt oder ein Standardlayout) | definePageLayoutTab |
definePageLayout
Verwenden Sie dies, wenn Sie die gesamte Detailseite besitzen – typischerweise für ein benutzerdefiniertes Objekt, das Sie selbst definiert haben.src/page-layouts/example-record-page-layout.ts
Hauptpunkte
typeist typischerweise'RECORD_PAGE', um die Detailansicht eines bestimmten Objekts anzupassen.objectUniversalIdentifiergibt an, auf welches Objekt dieses Layout angewendet wird.- Jeder
tabdefiniert einen Abschnitt der Seite mittitle,positionundlayoutMode(CANVASfür ein freies Layout). - Jedes
widgetinnerhalb eines Tabs kann eine Frontend-Komponente, eine Relationenliste oder andere eingebaute Widget-Typen rendern. positionauf Tabs steuert deren Reihenfolge. Verwenden Sie höhere Werte (z. B. 50), um benutzerdefinierte Tabs hinter den integrierten zu platzieren.
definePageLayoutTab
Verwenden Sie dies, wenn Sie nur einen Tab zu einem vorhandenen Layout hinzufügen möchten – zum Beispiel einen Analytics-Tab auf der standardmäßigen Company-Seite oder einen KI-Zusammenfassungs-Tab, der an das Layout Ihres eigenen Objekts angehängt ist.src/page-layouts/example-extra-tab.ts
Hauptpunkte
-
pageLayoutUniversalIdentifierist erforderlich und muss auf ein Seitenlayout verweisen, das zum Installationszeitpunkt bereits existiert – entweder ein standardmäßiges Twenty-Layout oder eines, das von Ihrer eigenen App definiert wurde. App-übergreifende Verweise auf Layouts, die einer anderen installierten App gehören, werden derzeit nicht unterstützt. Wenn das übergeordnete Layout fehlt, schlägt die Installation mit einem eindeutigen Validierungsfehler fehl. -
Für Standard-Twenty-Layouts importieren Sie die Bezeichner aus
twenty-sdk/define:Jeder Layout-Eintrag stellt außerdem seinetabsund derenwidgetszur Verfügung, sodass Sie auf jede Ebene verweisen können:Eine kurze Alias-VariableSTANDARD_PAGE_LAYOUTist ebenfalls verfügbar: -
widgetssind ausschließlich auf diesen Tab beschränkt – sie verweisen auf Frontend-Komponenten, Ansichten usw., genau wie Widgets, die inline indefinePageLayoutdefiniert sind. -
positionsteuert die Reihenfolge im Zielseitenlayout relativ zu den vorhandenen Registerkarten. Wählen Sie einen Wert, der Ihre Registerkarte relativ zu integrierten Registerkarten an die gewünschte Position bringt. -
Verwenden Sie dies anstelle von
definePageLayout, wenn Sie einem vorhandenen Layout nur etwas hinzufügen möchten. Verwenden SiedefinePageLayout, wenn Sie das gesamte Layout besitzen.