mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-09-19 16:06:32 +02:00
1.6 KiB
1.6 KiB
title: Tabbed Forms summary: Find out how CMS interfaces use jQuery UI tabs to provide nested FormFields.
Tabbed Forms
SilverStripe's [api:FormScaffolder] can automatically generate [api:Form] instances for certain database models. In the CMS and other scaffolded interfaces, it will output [api:TabSet] and [api:Tab] objects and use jQuery Tabs to split parts of the data model.
All interfaces within the CMS such as [api:ModelAdmin] and [api:LeftAndMain] use tabbed interfaces by default.
When dealing with tabbed forms, modifying the fields in the form has a few differences. Each [api:Tab] will be given a
name, and normally they all exist under the Root
[api:TabSet].
[api:TabSet] instances can contain child [api:Tab] and further [api:TabSet] instances, however the CMS UI will only
display up to two levels of tabs in the interface. If you want to group data further than that, try [api:ToggleField].
Adding a field from a tab.
:::php
$fields->addFieldToTab('Root.Main', new TextField(..));
Removing a field from a tab
:::php
$fields->removeFieldFromTab('Root.Main', 'Content');
Creating a new tab
:::php
$fields->addFieldToTab('Root.MyNewTab', new TextField(..));
Moving a field between tabs
:::php
$field = $fields->dataFieldByName('Content');
$fields->removeFieldFromTab('Root.Main', 'Content');
$fields->addFieldToTab('Root.MyContent', $content);
Add multiple fields at once
:::php
$fields->addFieldsToTab('Root.Content', array(
TextField::create('Name'),
TextField::create('Email')
));
API Documentation
- [api:FormScaffolder]