Reorder/Move 继承对象上的 Silverstripe 3 CMS 选项卡

Reorder/Move Silverstripe 3 CMS tabs on inherited objects

到处搜索这个问题的答案,但似乎没有其他人拥有它或真的担心它。这是问题所在:

我尝试了 $fields->removeByName('SEO') 并且他们手动重新添加了 Class B 中的选项卡。这很好,但我似乎无法找到一种方法来在删除 SEO 选项卡之前获取它的内容。所以我能做的最好的就是正确定位一个空的 SEO 选项卡,其中没有来自 Class A.

的字段

一种方法是删除 SEO 选项卡并在添加其他字段和选项卡后将其重新添加:

public function getCMSFields() {
    $fields = parent::getCMSFields();

    // Add fields here

    if ($seoTab = $fields->fieldByName('Root.SEO')) {
        $fields->removeFieldFromTab('Root', 'SEO');
        $fields->fieldByName('Root')->push($seoTab);
    }
}