2016-08-16 03:22:58 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace SilverStripe\CMS\Controllers;
|
|
|
|
|
2017-09-20 03:51:07 +02:00
|
|
|
use SilverStripe\CMS\Model\SiteTree;
|
2019-05-17 03:40:15 +02:00
|
|
|
use SilverStripe\ORM\DataObject;
|
2017-03-21 05:26:46 +01:00
|
|
|
use SilverStripe\Versioned\Versioned;
|
2016-08-16 03:22:58 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 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
|
|
|
}
|
2016-08-16 03:22:58 +02:00
|
|
|
|
2017-01-25 21:59:25 +01:00
|
|
|
public function getFilteredPages()
|
|
|
|
{
|
2019-05-17 03:40:15 +02:00
|
|
|
$table = DataObject::singleton(SiteTree::class)->baseTable();
|
|
|
|
$liveTable = DataObject::singleton(SiteTree::class)->stageTable($table, Versioned::LIVE);
|
2017-09-20 03:51:07 +02:00
|
|
|
$pages = Versioned::get_by_stage(SiteTree::class, Versioned::DRAFT);
|
2017-01-25 21:59:25 +01:00
|
|
|
$pages = $this->applyDefaultFilters($pages)
|
2019-05-17 03:40:15 +02:00
|
|
|
->leftJoin($liveTable, "\"$liveTable\".\"ID\" = \"$table\".\"ID\"")
|
|
|
|
->where("\"$table\".\"Version\" <> \"$liveTable\".\"Version\"");
|
2017-01-25 21:59:25 +01:00
|
|
|
return $pages;
|
|
|
|
}
|
2016-08-16 03:22:58 +02:00
|
|
|
}
|