删除内容字段后的“MetaData-Tab”下的新字段 - Silverstripe

时间:2013-10-22 15:00:57

标签: silverstripe

从页面类型中删除“内容”字段后,添加到 Root.Main 的所有新字段都会显示在MetaData-Tab下。那太烦人了。有人能告诉我如何获取MetaData-Tab上方的新字段吗?

这是我的代码

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

    $newsObjectField = new GridField('News', _t('Dict.NEWS', 'News'), $this->News(), CreateUnsortableGrid::create());
    $fields->addFieldToTab('Root.Main', $newsObjectField);

提前进行

1 个答案:

答案 0 :(得分:3)

addFieldToTab默认情况下会在列表末尾添加新字段。

所以你可以使用类似的东西:

$newsObjectField = new GridField('News', _t('Dict.NEWS', 'News'), $this->News(), CreateUnsortableGrid::create());
$fields->fieldByName('Root')->fieldByName('Main')->insertAfter($newsObjectField, 'MenuTitle');

insertInsertBefore的工作方式类似。

此处MenuTitle可以是您想要的任何其他字段名称。

fieldByName使用虚线语法,因此它也可以是$fields->fieldByName('Root.Main')

修改

@Zauberfisch addFieldToTab指出的

可以采用第三个参数,让您指定在之前插入的字段:

$fields->addFieldToTab('Root.Main', $newsObjectField, 'Metadata');