Source of file PageSlicesExtension.php
Size: 1,862 Bytes - Last Modified: 2021-12-24T06:51:24+00:00
/var/www/docs.ssmods.com/process/src/code/Extensions/PageSlicesExtension.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | <?php /** * Extension to add slice management to Page */ class PageSlicesExtension extends DataExtension { private static $dependencies = array( 'previewer' => '%$DataObjectPreviewer' ); private static $has_many = array( 'Slices' => 'ContentSlice.Parent' ); /** * @var DataObjectPreviewer */ public $previewer; public function updateCMSFields(FieldList $fields) { $this->addSlicesCmsTab($fields); } /** * Add slice management to CMS fields * * @param FieldList $fields */ public function addSlicesCmsTab(FieldList $fields, $tabName = 'Root.Slices', $dataList = null) { if (!$dataList) { $dataList = $this->owner->Slices(); } $dataList = $dataList->setDataQueryParam(['Versioned.stage' => 'Stage']); $fields->addFieldToTab( $tabName, $grid = new GridField( 'Slices', 'Slices', $dataList, $gridConfig = GridFieldConfig_RecordEditor::create() ) ); $gridConfig->addComponent(new GridFieldDataObjectPreview($this->previewer)); $gridConfig->addComponent(new GridFieldVersionedOrderableRows('Sort')); $gridConfig->removeComponentsByType('GridFieldDeleteAction'); $gridConfig->removeComponentsByType('GridFieldDetailForm'); $gridConfig->addComponent(new SliceDetailsForm()); // Change columns displayed $dataColumns = $gridConfig->getComponentByType('GridFieldDataColumns'); $dataColumns->setDisplayFields($this->modifyDisplayFields( $dataColumns->getDisplayFields($grid) )); } protected function modifyDisplayFields(array $fields) { unset($fields['Title']); return $fields; } } |