SilverStripe删除FieldGroup

时间:2016-07-13 11:12:17

标签: silverstripe

我正在尝试从Page Main.Settings标签中删除可见性 FieldGroup。我猜了一下,并在 Page.php

中写了这个
function getSettingsFields() {
    $fields = parent::getSettingsFields();
    $fields->removeByName('Visibility');
    return $fields;
}

..它做了伎俩,但奇怪的是它只适用于Locale是英语的时候。我猜是removeByName参数引用了Visibility字段组的字段标签,并且每个Locale(语言)的标签值都不同。在创建此字段组的SiteTree.php中,我找不到FieldGroup“Visibility”的实际名称。

如何以不考虑区域设置的方式删除此FieldGroup?

1 个答案:

答案 0 :(得分:3)

因为'可见性'是一个已翻译的字段名称,我查找了此特定字段名称的_t引用,并将其放在removeByName而不是固定字符串'可见性'中,因此它遵循所有语言环境。以下代码删除了未命名的 FieldGroup。

function getSettingsFields() {
    $fields = parent::getSettingsFields();
    $fields->removeByName(_t('SiteTree.Visibility', 'Visibility'));
    return $fields;
}