SilverStripe 移除 FieldGroup
SilverStripe remove FieldGroup
我正在尝试从页面 Main.Settings 选项卡中删除 Visibility FieldGroup。我胡乱猜测并在 Page.php:
中写了这个
function getSettingsFields() {
$fields = parent::getSettingsFields();
$fields->removeByName('Visibility');
return $fields;
}
..它成功了,但奇怪的是它只在语言环境为英语时有效。我猜 removeByName 参数是指可见性字段组的字段标签,并且此标签的值对于每个区域设置(语言)是不同的。在创建此字段组的 SiteTree.php 中,我找不到字段组的实际名称 "Visibility"。
如何以不考虑区域设置的方式删除此 FieldGroup?
因为 'Visibility' 是翻译的字段名,我查找了这个特定字段名的 _t
参考并将其放在 removeByName
而不是固定字符串 'Visibility' 中,所以它遵循所有语言环境。以下代码删除了 unnamed FieldGroup。
function getSettingsFields() {
$fields = parent::getSettingsFields();
$fields->removeByName(_t('SiteTree.Visibility', 'Visibility'));
return $fields;
}
我正在尝试从页面 Main.Settings 选项卡中删除 Visibility FieldGroup。我胡乱猜测并在 Page.php:
中写了这个function getSettingsFields() {
$fields = parent::getSettingsFields();
$fields->removeByName('Visibility');
return $fields;
}
..它成功了,但奇怪的是它只在语言环境为英语时有效。我猜 removeByName 参数是指可见性字段组的字段标签,并且此标签的值对于每个区域设置(语言)是不同的。在创建此字段组的 SiteTree.php 中,我找不到字段组的实际名称 "Visibility"。
如何以不考虑区域设置的方式删除此 FieldGroup?
因为 'Visibility' 是翻译的字段名,我查找了这个特定字段名的 _t
参考并将其放在 removeByName
而不是固定字符串 'Visibility' 中,所以它遵循所有语言环境。以下代码删除了 unnamed FieldGroup。
function getSettingsFields() {
$fields = parent::getSettingsFields();
$fields->removeByName(_t('SiteTree.Visibility', 'Visibility'));
return $fields;
}