silverstripe-cms/code/Controllers/CMSSiteTreeFilter_StatusRemovedFromDraftPages.php

36 lines
921 B
PHP
Raw Permalink Normal View History

<?php
namespace SilverStripe\CMS\Controllers;
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\ORM\SS_List;
use SilverStripe\Versioned\Versioned;
/**
* Filters pages which have a status "Removed from Draft".
*/
class CMSSiteTreeFilter_StatusRemovedFromDraftPages extends CMSSiteTreeFilter
{
2017-01-25 21:59:25 +01:00
public static function title()
{
2018-02-20 22:32:13 +01:00
return _t(__CLASS__ . '.Title', 'Live but removed from draft');
2017-01-25 21:59:25 +01:00
}
2017-01-25 21:59:25 +01:00
/**
* Filters out all pages who's status is set to "Removed from draft".
*
* @return SS_List
*/
public function getFilteredPages()
{
$pages = Versioned::get_including_deleted(SiteTree::class);
2017-01-25 21:59:25 +01:00
$pages = $this->applyDefaultFilters($pages);
$pages = $pages->filterByCallback(function (SiteTree $page) {
// If page is removed from stage but not live
return $page->isOnLiveOnly();
});
return $pages;
}
}