records(); $fieldsToShow = $this->fieldsToShow(); if($records) { $result = "
'", '"Title"'); } function fieldsToShow() { return array( "Title" => array("NestedTitle", array("2")), ); } } /** * Content side-report listing recently editing pages. * @package cms * @subpackage content */ class SideReport_RecentlyEdited extends SideReport { function title() { return _t('SideReport.LAST2WEEKS',"Pages edited in the last 2 weeks"); } function group() { return "Content reports"; } function sort() { return 200; } function records($params = null) { $threshold = strtotime('-14 days', SS_Datetime::now()->Format('U')); return DataObject::get("SiteTree", "\"SiteTree\".\"LastEdited\" > '".date("Y-m-d H:i:s", $threshold)."'", "\"SiteTree\".\"LastEdited\" DESC"); } function fieldsToShow() { return array( "Title" => array("NestedTitle", array("2")), ); } } class SideReport_ToDo extends SideReport { function title() { return _t('SideReport.TODO',"Pages with To Do items"); } function group() { return "Content reports"; } function sort() { return 0; } function records($params = null) { return DataObject::get("SiteTree", "\"SiteTree\".\"ToDo\" IS NOT NULL AND \"SiteTree\".\"ToDo\" <> ''", "\"SiteTree\".\"LastEdited\" DESC"); } function fieldsToShow() { return array( "Title" => array( "source" => array("NestedTitle", array("2")), "link" => true, ), "ToDo" => array( "source" => "ToDo", "newline" => true, ), ); } } /** * Content side-report listing pages with broken links * @package cms * @subpackage content */ class SideReport_BrokenLinks extends SideReport { function title() { return _t('SideReport.BROKENLINKS',"Pages with broken links"); } function group() { return "Broken links reports"; } function records($params = null) { // Get class names for page types that are not virtual pages or redirector pages $classes = array_diff(ClassInfo::subclassesFor('SiteTree'), ClassInfo::subclassesFor('VirtualPage'), ClassInfo::subclassesFor('RedirectorPage')); $classNames = "'".join("','", $classes)."'"; if (isset($_REQUEST['OnLive'])) $ret = Versioned::get_by_stage('SiteTree', 'Live', "ClassName IN ($classNames) AND HasBrokenLink = 1"); else $ret = DataObject::get('SiteTree', "ClassName IN ($classNames) AND HasBrokenLink = 1"); return $ret; } function fieldsToShow() { return array( "Title" => array("NestedTitle", array("2")), ); } function getParameterFields() { return new FieldSet( new CheckboxField('OnLive', 'Check live site') ); } } /** * Content side-report listing pages with broken files * or asset links * @package cms * @subpackage content */ class SideReport_BrokenFiles extends SideReport { function title() { return _t('SideReport.BROKENFILES',"Pages with broken files"); } function group() { return "Broken links reports"; } function records($params = null) { // Get class names for page types that are not virtual pages or redirector pages $classes = array_diff(ClassInfo::subclassesFor('SiteTree'), ClassInfo::subclassesFor('VirtualPage'), ClassInfo::subclassesFor('RedirectorPage')); $classNames = "'".join("','", $classes)."'"; if (isset($_REQUEST['OnLive'])) $ret = Versioned::get_by_stage('SiteTree', 'Live', "ClassName IN ($classNames) AND HasBrokenFile = 1"); else $ret = DataObject::get('SiteTree', "ClassName IN ($classNames) AND HasBrokenFile = 1"); return $ret; } function fieldsToShow() { return array( "Title" => array("NestedTitle", array("2")), ); } function getParameterFields() { return new FieldSet( new CheckboxField('OnLive', 'Check live site') ); } } class SideReport_BrokenVirtualPages extends SideReport { function title() { return _t('SideReport.BROKENVIRTUALPAGES', 'VirtualPages pointing to deleted pages'); } function group() { return "Broken links reports"; } function records($params = null) { $classNames = "'".join("','", ClassInfo::subclassesFor('VirtualPage'))."'"; if (isset($_REQUEST['OnLive'])) $ret = Versioned::get_by_stage('SiteTree', 'Live', "ClassName IN ($classNames) AND HasBrokenLink = 1"); else $ret = DataObject::get('SiteTree', "ClassName IN ($classNames) AND HasBrokenLink = 1"); return $ret; } function fieldsToShow() { return array( "Title" => array("NestedTitle", array("2")), ); } function getParameterFields() { return new FieldSet( new CheckboxField('OnLive', 'Check live site') ); } } class SideReport_BrokenRedirectorPages extends SideReport { function title() { return _t('SideReport.BROKENREDIRECTORPAGES', 'RedirectorPages pointing to deleted pages'); } function group() { return "Broken links reports"; } function records($params = null) { $classNames = "'".join("','", ClassInfo::subclassesFor('RedirectorPage'))."'"; if (isset($_REQUEST['OnLive'])) $ret = Versioned::get_by_stage('SiteTree', 'Live', "ClassName IN ($classNames) AND HasBrokenLink = 1"); else $ret = DataObject::get('SiteTree', "ClassName IN ($classNames) AND HasBrokenLink = 1"); return $ret; } function fieldsToShow() { return array( "Title" => array("NestedTitle", array("2")), ); } function getParameterFields() { return new FieldSet( new CheckboxField('OnLive', 'Check live site') ); } }