Source of file GridFieldSiteTree_PageHolderExtension.php
Size: 1,937 Bytes - Last Modified: 2021-12-24T06:40:29+00:00
/var/www/docs.ssmods.com/process/src/code/GridFieldSiteTree_PageHolderExtension.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | <?php /* * @author Christopher Darling (www.christopherdarling.co.uk) */ class GridFieldSiteTree_PageHolderExtension extends DataExtension { /** * Prevent children pages from showing up in the SiteTree TreeView **/ public function AllChildrenIncludingDeleted() { return false; } /* * Create a GridField to display the pages. * * @see CMSMain::ListViewForm() heavily based on this code. * @param string $name * @param string $title * @param SS_List $dataList * @return GridField */ public function getGridFieldSiteTreeField($name, $title=null, SS_List $dataList = null) { $gf = GridField::create( $name, $title, $dataList, $config = GridFieldConfig::create() ); $config->addComponents( new GridFieldSortableHeader(), $columns = new GridFieldDataColumns(), new GridFieldPaginator(15) ); $fields = array( 'getTreeTitle' => _t('SiteTree.PAGETITLE', 'Page Title'), 'singular_name' => _t('SiteTree.PAGETYPE'), 'LastEdited' => _t('SiteTree.LASTUPDATED', 'Last Updated'), ); $columns->setDisplayFields($fields); $columns->setFieldCasting(array( 'Created' => 'Datetime->Ago', 'LastEdited' => 'Datetime->Ago', 'getTreeTitle' => 'HTMLText' )); $config->getComponentByType('GridFieldSortableHeader')->setFieldSorting(array('getTreeTitle' => 'Title')); $controller = $this; $columns->setFieldFormatting(array( 'getTreeTitle' => function ($value, &$item) use ($controller) { return '<a class="action-detail" href="' . singleton('CMSPageEditController')->Link('show') . '/' . $item->ID . '">' . $item->TreeTitle . '</a>'; } )); return $gf; } } |