public function ListViewForm(){ $params = $this->request->requestVar('q'); $list = $this->getList($params, $this->request->requestVar('ParentID')); $gridFieldConfig = GridFieldConfig::create()->addComponents( new GridFieldSortableHeader(), new GridFieldDataColumns(), new GridFieldPaginator(15) ); $gridField = new GridField('Page','Pages', $list, $gridFieldConfig); $columns = $gridField->getConfig()->getComponentByType('GridFieldDataColumns'); // Don't allow navigating into children nodes on filtered lists if($params){ $gridField->setDisplayFields(array( 'getTreeTitle' => _t('SiteTree.PAGETITLE', 'Page Title'), 'Created' => _t('SiteTree.CREATED', 'Date Created'), 'LastEdited' => _t('SiteTree.LASTUPDATED', 'Last Updated'), )); }else{ $columns->setDisplayFields(array( 'listChildrenLink' => "", 'getTreeTitle' => _t('SiteTree.PAGETITLE', 'Page Title'), 'Created' => _t('SiteTree.CREATED', 'Date Created'), 'LastEdited' => _t('SiteTree.LASTUPDATED', 'Last Updated'), )); } $columns->setFieldCasting(array( 'Created' => 'Date->Ago', 'LastEdited' => 'Date->Ago', )); $controller = $this; $columns->setFieldFormatting(array( 'listChildrenLink' => function(&$item) use($controller) { $num = $item->numChildren(); if($num) { return sprintf( '<a class="cms-panel-link list-children-link" data-pjax="ListViewForm" data-target-panel="#Form_ListViewForm" href="%s?ParentID=%d&view=list">%s</a>', $controller->Link(), $item->ID, $num ); } }, 'getTreeTitle' => '<a class=\"cms-panel-link\" href=\"' . singleton('CMSPageEditController')->Link('show') . '/$ID\">$value</a>' )); $listview = new Form( $this, 'ListViewForm', new FieldList($gridField), new FieldList() ); $this->extend('updateListView', $listview); $listview->disableSecurityToken(); return $listview; }