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')
    )
));
Другие вопросы по тегам