2016-08-16 03:22:58 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace SilverStripe\CMS\Controllers;
|
|
|
|
|
|
|
|
use SilverStripe\CMS\Model\SiteTree;
|
|
|
|
use SilverStripe\ORM\SS_List;
|
2017-03-21 05:26:46 +01:00
|
|
|
use SilverStripe\Versioned\Versioned;
|
2016-08-16 03:22:58 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Filters pages which have a status "Draft".
|
|
|
|
*/
|
|
|
|
class CMSSiteTreeFilter_StatusDraftPages extends CMSSiteTreeFilter
|
|
|
|
{
|
|
|
|
|
2017-01-25 21:59:25 +01:00
|
|
|
public static function title()
|
|
|
|
{
|
2017-04-20 03:15:29 +02:00
|
|
|
return _t('SilverStripe\\CMS\\Controllers\\CMSSiteTreeFilter_StatusDraftPages.Title', 'Draft pages');
|
2017-01-25 21:59:25 +01:00
|
|
|
}
|
2016-08-16 03:22:58 +02:00
|
|
|
|
2017-01-25 21:59:25 +01:00
|
|
|
/**
|
|
|
|
* 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('SilverStripe\\CMS\\Model\\SiteTree', '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;
|
|
|
|
}
|
2016-08-16 03:22:58 +02:00
|
|
|
}
|