2012-08-15 68 views
9

我想添加一個字段到編輯頁面視圖的現有選項卡「設置」(在屏幕截圖中標記)。silverstripe 3 addFieldToTab「設置」

我嘗試這樣做:

$fields->addFieldToTab('Root.Settings', new TextField('Intro')); 

但它只是增加了旁邊的次級選項卡「主要內容」包含附加字段的新標籤。

Silverstripe Edid Page View

回答

17

對於SilverStripe 3.0,你需要重寫getSettingsFields()功能模型如

function getSettingsFields() { 
    $fields = parent::getSettingsFields(); 
    $fields->addFieldToTab("Root.Settings", new TextField('Intro')); 
    return $fields; 
} 

在SilverStripe 2.x中,這是在getCMSFields()函數中完成的。

+0

爽!工作!謝謝! – spierala 2012-08-15 19:46:36

2

此方法爲我工作:

public function updateSettingsFields(FieldList $fields) { 
    $fields->addFieldToTab("Root.MyNewSettingsSubTab", new TextField('Intro')); 
    return $fields; 
} 
+1

值得注意的是,如果通過'''DataExtension'''來執行這個方法,但是如果你通過一個從'''Page'''延伸的類來完成它,那麼第一個答案就是你想要的使用。 – 2016-01-01 20:29:00