Source of file PublishableGridFieldStage.php
Size: 1,777 Bytes - Last Modified: 2021-12-23T10:38:26+00:00
/var/www/docs.ssmods.com/process/src/code/forms/gridfield/PublishableGridFieldStage.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | <?php /** * PublishableGridFieldStage. * * @author Tom Densham <tom.densham@studiobonito.co.uk> * @copyright (c) 2012, Studio Bonito Ltd. * @version 1.0 */ class PublishableGridFieldStage implements GridField_DataManipulator { protected $currentStage = 'Latest'; public function __construct($currentStage = 'Latest') { $this->currentStage = $currentStage; } protected function getPublishableGridFieldState(GridField $gridField) { $state = $gridField->State->PublishableGridField; // Force the state to the initial page if none is set if (empty($state->currentStage)) $state->currentStage = 'Latest'; return $state; } /** * Manipulate the datalist as needed by this grid modifier. * * @param GridField * @param SS_List * @return DataList */ public function getManipulatedData(GridField $gridField, SS_List $dataList) { if (is_a($dataList, 'DataList')) { $dataQuery = $dataList->dataQuery(); $state = $this->getPublishableGridFieldState($gridField); if ($state->currentStage == 'Stage') { $dataQuery->setQueryParam('Versioned.mode', 'stage_unique'); $dataQuery->setQueryParam('Versioned.stage', 'Stage'); } elseif ($state->currentStage == 'Live') { $dataQuery->setQueryParam('Versioned.mode', 'stage'); $dataQuery->setQueryParam('Versioned.stage', 'Live'); } else { $dataQuery->setQueryParam('Versioned.mode', 'stage'); $dataQuery->setQueryParam('Versioned.stage', 'Stage'); } return $dataList->setDataQuery($dataQuery); } return $dataList; } } |