2016-02-05 65 views
1

我是新來的silverstripe框架,並試圖獲取管理面板中的菜單列表。SilverStripe ModelAdmin

我發現很多例子顯示Menu(1)和Menu(2)等前端菜單,但沒有得到任何示例代碼來獲取管理模型中相同的菜單數組。

我試過的代碼是:

public function getCMSfields() { 
    $fields = FieldList::create(TabSet::create('Root')); 
    $fields->addFieldsToTab('Root.Main', array(
     TextField::create('Name'), 
     DropdownField::create('URL') 
      ->setSource(SiteTree::get()), 

    )); 

    return $fields; 
} 
+0

也許['TreeDropdownField'(http://api.silverstripe.org/master/class-TreeDropdownField.html)就是你在之後。 – 3dgoo

回答

1

的ModelAdmin主要是有管理數據對象,而不是網頁。查看DocsLesson瞭解更多關於ModelAdmin的信息。

但是,如果你想在一個的ModelAdmin管理頁面,你可以那樣做

class MyPageAdmin extends ModelAdmin { 

    ... 
    ... 

    private static $managed_models = array(
    'Page' 
); 

    public function getList() { 
    $list = parent::getList(); 

    if($this->modelClass == 'Page'){ 
     $list = $list->filter('ParentID', '1'); 
    } 

    return $list; 
    } 
} 

要從特定頁面僅管理孩子,使用的GetList()函數和您的需求後,過濾列表, 。