silverstripe-cms/code/Controllers/CMSSiteTreeFilter_ChangedPa...

31 lines
915 B
PHP
Raw Normal View History

<?php
namespace SilverStripe\CMS\Controllers;
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\ORM\DataObject;
use SilverStripe\Versioned\Versioned;
/**
* Gets all pages which have changed on stage.
*/
class CMSSiteTreeFilter_ChangedPages 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', "Modified pages");
2017-01-25 21:59:25 +01:00
}
2017-01-25 21:59:25 +01:00
public function getFilteredPages()
{
$table = DataObject::singleton(SiteTree::class)->baseTable();
$liveTable = DataObject::singleton(SiteTree::class)->stageTable($table, Versioned::LIVE);
$pages = Versioned::get_by_stage(SiteTree::class, Versioned::DRAFT);
2017-01-25 21:59:25 +01:00
$pages = $this->applyDefaultFilters($pages)
->leftJoin($liveTable, "\"$liveTable\".\"ID\" = \"$table\".\"ID\"")
->where("\"$table\".\"Version\" <> \"$liveTable\".\"Version\"");
2017-01-25 21:59:25 +01:00
return $pages;
}
}