Source of file ApprovedPublications3StepReport.php
Size: 4,751 Bytes - Last Modified: 2021-12-23T10:28:49+00:00
/var/www/docs.ssmods.com/process/src/code/ThreeStep/reports/ApprovedPublications3StepReport.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 | <?php /** * Report showing publication requests I need to publish * * @package cmsworkflow * @subpackage ThreeStep */ class ApprovedPublications3StepReport extends SS_Report { /** * @var Array */ protected $_cache_sourceRecords = array(); public function title() { return _t('ApprovedPublications3StepReport.TITLE', "Approved pages I need to publish"); } public function sourceRecords($params, $sort, $limit) { increase_time_limit_to(120); $cachekey = md5(serialize($params)); if (!isset($this->_cache_sourceRecords[$cachekey])) { $res = WorkflowThreeStepRequest::get_by_publisher( 'WorkflowPublicationRequest', Member::currentUser(), array('Approved') ); $doSet = new DataObjectSet(); foreach ($res as $result) { if ($wf = $result->openWorkflowRequest()) { $result->WFAuthorID = $wf->AuthorID; $result->WFApproverTitle = $wf->Approver()->Title; $result->WFAuthorTitle = $wf->Author()->Title; $result->WFApprovedWhen = $wf->ApprovalDate(); $result->WFRequestedWhen = $wf->Created; $result->WFApproverID = $wf->ApproverID; $result->WFPublisherID = $wf->PublisherID; $result->HasExpiry = $wf->ExpiryDate(); if (isset($_REQUEST['OnlyMine']) && $result->WFApproverID != Member::currentUserID()) { continue; } $doSet->push($result); } } $this->_cache_sourceRecords[$cachekey] = $doSet; } $doSet = $this->_cache_sourceRecords[$cachekey]; if ($sort) { $parts = explode(' ', $sort); $field = $parts[0]; $direction = $parts[1]; if ($field == 'AbsoluteLink') { $sort = 'URLSegment ' . $direction; } if ($field == 'Subsite.Title') { $sort = 'SubsiteID ' . $direction; } $doSet->sort($sort); } if ($limit && $limit['limit']) { return $doSet->getRange($limit['start'], $limit['limit']); } else { return $doSet; } } public function columns() { return array( "Title" => array( "title" => "Page name", 'formatting' => '<a href=\"admin/show/$ID\" title=\"Edit page\">$value</a>' ), "WFApproverTitle" => array( "title" => "Approver", ), "WFApprovedWhen" => array( "title" => "Approved", 'casting' => 'SS_Datetime->Full' ), "WFAuthorTitle" => array( "title" => "Author", ), "WFRequestedWhen" => array( "title" => "Requested", 'casting' => 'SS_Datetime->Full' ), 'HasExpiry' => array( 'title' => 'Expiry', 'formatting' => '" . ($value ? date("j M Y g:ia", strtotime($value)) : "no") . "' ), 'AbsoluteLink' => array( 'title' => 'URL', 'formatting' => '$value " . ($AbsoluteLiveLink ? "<a target=\"_blank\" href=\"$AbsoluteLiveLink\">(live)</a>" : "") . " <a target=\"_blank\" href=\"$value?stage=Stage\">(draft)</a>' ) ); } /** * This alternative columns method is picked up by SideReportWrapper */ public function sideReportColumns() { return array( "Title" => array( "title" => "Title", "link" => true, ), "WFApproverTitle" => array( "title" => "Approver", "formatting" => 'Approved by $value', ), "WFApprovedWhen" => array( "title" => "When", "formatting" => ' on $value', 'casting' => 'SS_Datetime->Full' ), ); } public function parameterFields() { $params = new FieldSet(); $params->push(new CheckboxField( "OnlyMine", "Only requests I approved" )); return $params; } public function canView() { return Object::has_extension('SiteTree', 'SiteTreeCMSThreeStepWorkflow'); } public function group() { return _t('WorkflowRequest.WORKFLOW', 'Workflow'); } } |