2016-02-05 4 views
1

Я новичок в области silverstripe framework и пытаюсь получить список меню на панели администратора.SilverStripe ModelAdmin

Я нашел множество примеров, чтобы показать меню на интерфейсе меню (1) и меню (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 в основном там, чтобы управлять DataObjects и не Pages. Посмотрите на Docs и на этот Lesson, чтобы узнать больше о 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() и отфильтровать список после ваших потребностей ,

Смежные вопросы