Skip to main content
Ein Seitenlayout steuert, wie die Detailseite eines Datensatzes angeordnet ist: welche Tabs angezeigt werden und welche Widgets sie enthalten. Verwenden Sie 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).

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

  • type ist eines von 'RECORD_INDEX', 'RECORD_PAGE', 'DASHBOARD' oder 'STANDALONE_PAGE'. Verwenden Sie 'RECORD_PAGE', um die Detailansicht eines bestimmten Objekts anzupassen.
  • objectUniversalIdentifier gibt an, auf welches Objekt dieses Layout angewendet wird.
  • Jeder tab definiert einen Abschnitt der Seite mit title, position und layoutMode (VERTICAL_LIST für Datensatzseiten, GRID für Dashboards). Ein Tab mit einem einzelnen Widget rendert dieses automatisch in voller Breite; bei mehreren Widgets werden diese als Karten gestapelt.
  • Jedes widget innerhalb eines Tabs kann eine Frontend-Komponente, eine Relationenliste oder andere eingebaute Widget-Typen rendern.
  • position auf 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

  • pageLayoutUniversalIdentifier ist 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 seine tabs und deren widgets zur Verfügung, sodass Sie auf jede Ebene verweisen können:
    Eine kurze Alias-Variable STANDARD_PAGE_LAYOUT ist ebenfalls verfügbar:
  • widgets sind ausschließlich auf diesen Tab beschränkt – sie verweisen auf Frontend-Komponenten, Ansichten usw., genau wie Widgets, die inline in definePageLayout definiert sind.
  • position steuert 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 Sie definePageLayout, wenn Sie das gesamte Layout besitzen.