在SilverStripe的CMS中,我想删除页面内的Content标签。我可以这样做,如下所示:

$fields->removeFieldsFromTab('Root.Content.Main', 'Content');

然后,我想创建自己的自定义标签:
$fields->addFieldToTab('Root.Content.MyTab', $myField);

但是,通过添加我自己的自定义标签,它将Content标签带回来。

另一种选择是将MyTab设置为默认的“向上”标签。那可能吗?

最佳答案

SilverStripe 2.4

要在SilverStripe 2.4中删除Content标签:

$fields->removeFieldFromTab('Root.Content', 'Main');

并将字段添加到名为MyTab的选项卡中:
$fields->addFieldToTab('Root.Content.MyTab', $myField);

SilverStripe 3.1

要在SilverStripe 3.1中删除Content标签:
$fields->removeFieldFromTab('Root', 'Main');

并将字段添加到名为MyTab的选项卡中:
$fields->addFieldToTab('Root.MyTab', $myField);

笔记

删除Content标签意味着您无法控制页面标题。

removeFieldsFromTab 从此Tab中的TabSet / FieldList中删除了许多字段。它使用字段名称数组作为第二个参数。

removeFieldFromTab 从此Tab中的TabSet / FieldList中删除单个字段。它使用字符串字段名称作为第二个参数。

在您的情况下,您要使用removeFieldFromTab而不是removeFieldsFromTab

关于tabs - SilverStripe选项卡自定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22212088/

10-10 09:32