silverstripe-framework/docs/en/reference/site-reports.md

73 lines
1.9 KiB
Markdown
Raw Normal View History

# Site Reports
## Introduction
A report is a little bit of functionally in the CMS designed to provide a report of your data or content. You can access
the site reports by clicking *Reports* in the left hand side bar and selecting the report you wish to view.
![](_images/sitereport.png)
## Default Reports
By default the CMS ships with several basic reports:
* VirtualPages pointing to deleted pages
* RedirectorPages pointing to deleted pages
* Pages with broken files
* Pages with broken links
* Broken links report
* Pages with no content
* Pages edited in the last 2 weeks
Modules may come with their own additional reports.
## Creating Custom Reports
Custom reports can be created quickly and easily. A general knowledge of SilverStripe's
[Datamodel](/topics/datamodel) is useful before creating a custom report.
Inside the *mysite/code* folder create a file called *CustomSideReport.php*. Inside this file we can add our site reports.
The following example will create a report to list every page on the current site.
###CustomSideReport.php
:::php
class CustomSideReport_NameOfReport extends SS_Report {
// the name of the report
public function title() {
return 'All Pages';
}
// what we want the report to return
public function sourceRecords($params = null) {
return Page::get()->sort('Title');
}
// which fields on that object we want to show
public function columns() {
$fields = array(
'Title' => 'Title'
);
return $fields;
}
}
More useful reports can be created by changing the `DataList` returned in the `sourceRecords` function.
## Notes
* `CustomSideReport_ReportName` must extend `SS_Report`
* It is recommended to place all custom reports in the 1 file.
* Create a *CustomSideReport.php* file and add classes as you need them inside for each report
## TODO
* How to format and make advanced reports.
* More examples
## API Documentation
`[api:ReportAdmin]`