2016-07-13 11 views
2

私は可視性フィールドを[ページMain.Settings]タブから削除しようとしています。私は野生の推測を取り、Page.phpでこれを書いた:SilverStripe remove FieldGroup

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

..Itはトリックをしましたが、ロケールが英語であるとき、不思議なことにのみ機能します。 removeByNameパラメータを推測すると、Visibilityフィールドグループのフィールドラベルが参照され、このラベルの値は各ロケール(言語)ごとに異なります。このフィールドグループが作成されたSiteTree.phpでは、FieldGroup "Visibility"の実際の名前を見つけることができませんでした。

ロケールに関係しない方法でこのフィールドグループを削除するにはどうすればよいですか?

答えて

3

「可視性」は翻訳されたフィールド名であるので、私はこの特定のフィールド名のため_t参照を見て、そのremoveByNameにおける代わりの固定文字列「可視性」を置き、それはすべてのロケールに従います。次のコードでは、という名前のない FieldGroupが削除されます。

function getSettingsFields() { 
    $fields = parent::getSettingsFields(); 
    $fields->removeByName(_t('SiteTree.Visibility', 'Visibility')); 
    return $fields; 
} 
関連する問題