SilverStripe перемещает стандартные поля SiteTree CMS на новую вкладку
В настройках SS3 по умолчанию поля CMS размещаются на вкладке Root.Main
, Тем не менее, я хочу создать две новые вкладки Main Content
а также Form
так что поля CMS по умолчанию будут в Root.Main.MainContent
,
Я посмотрел на SiteTree.php
чтобы увидеть, как поля размещены на вкладке. Кажется, довольно трудно попасть между ними.
Q: Как переместить поля cms по умолчанию из Root.Main
в Root.Main.MainContent
?
2 ответа
В 3.3.2 поля по умолчанию автоматически помещаются на вкладку с именем Main Content
, это Main Content
Вкладка на самом деле Root.Main
ссылка на код в коде. Если Main Content
вкладка является единственной вкладкой, то она скрыта, так как не имеет смысла иметь только одну вкладку.
Чтобы сделать то, что вы хотите, просто создайте свои поля, а затем добавьте их в новый Form
вкладка:
$myNewField = new LiteralField("Lipsum","Ipsum dolor sit amet enim.");
$fields->addFieldToTab('Root.Form', $myNewField );
Ответ AlphaCactus должен быть таким, какой вы хотите, но если вы хотите создать вкладку третьего уровня, вы можете использовать код, подобный следующему:
$fields->addFieldsToTab('Root.Main', Tabset::create('MainTabset',
Tab::create('MainContent',
TextField::create('Field1'),
TextField::create('Field2')
),
Tab::create('Form',
TextField::create('Field3'),
TextField::create('Field4')
)
));