silverstripe-cms/code/Controllers/CMSSiteTreeFilter_StatusDraftPages.php
Damian Mooyman fa0b559a7b
Update usages of ClassInfo
Add missing unit tests for SiteTreeFolderExtension
2017-09-20 15:20:17 +12:00

37 lines
967 B
PHP

<?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 "Draft".
*/
class CMSSiteTreeFilter_StatusDraftPages extends CMSSiteTreeFilter
{
public static function title()
{
return _t('SilverStripe\\CMS\\Controllers\\CMSSiteTreeFilter_StatusDraftPages.Title', 'Draft pages');
}
/**
* Filters out all pages who's status is set to "Draft".
*
* @see {@link SiteTree::getStatusFlags()}
* @return SS_List
*/
public function getFilteredPages()
{
$pages = Versioned::get_by_stage(SiteTree::class, 'Stage');
$pages = $this->applyDefaultFilters($pages);
$pages = $pages->filterByCallback(function (SiteTree $page) {
// If page exists on stage but not on live
return $page->isOnDraftOnly();
});
return $pages;
}
}