mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
89ff059334
Fixing typo in Site Reports documentation. Adding more detail to Custom Report example.
73 lines
1.9 KiB
Markdown
73 lines
1.9 KiB
Markdown
# 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]`
|