<?php

/**
 * @package cms
 * @subpackage reports
 */
class BrokenVirtualPagesReport extends SS_Report {

	public function title() {
		return _t('SideReport.BROKENVIRTUALPAGES', 'VirtualPages pointing to deleted pages');
	}

	public function group() {
		return _t('SideReport.BrokenLinksGroupTitle', "Broken links reports");
	}

	public function sourceRecords($params = null) {
		$classes = ClassInfo::subclassesFor('VirtualPage');
		$classParams = DB::placeholders($classes);
		$classFilter = array(
			"\"ClassName\" IN ($classParams) AND \"HasBrokenLink\" = 1" => $classes
		);
		$stage = isset($params['OnLive']) ? 'Live' : 'Stage';
		return Versioned::get_by_stage('SiteTree', $stage, $classFilter);
	}
	
	public function columns() {
		return array(
			"Title" => array(
				"title" => "Title", // todo: use NestedTitle(2)
				"link" => true,
			),
		);
	}

	public function getParameterFields() {
		return new FieldList(
			new CheckboxField('OnLive', _t('SideReport.ParameterLiveCheckbox', 'Check live site'))
		);
	}
}

/**
 * @deprecated 3.2..4.0
 */
class SideReport_BrokenVirtualPages extends BrokenVirtualPagesReport {
	public function __construct() {
		Deprecation::notice('4.0', 'Use BrokenVirtualPagesReport instead');
		parent::__construct();
	}
}