.. include:: /Includes.rst.txt
.. _custom-reports-more:
.. _custom-reports:
============================
Custom reports registration
============================
The only report provided by the TYPO3 core is the one
called :guilabel:`Status`.
The status report itself is extendable and shows status messages like a system
environment check and the status of the installed extensions.
Reports and status are automatically registered through the service
configuration, based on the implemented interface.
.. _register-custom-report:
Register a custom report
========================
Create a custom submodule extending the reports module.
.. code-block:: php
[
'parent' => 'system_reports',
'access' => 'admin',
'path' => '/module/system/reports/myreport',
'iconIdentifier' => 'my-report-icon',
'labels' => [
'title' => 'LLL:EXT:my_extension/Resources/Private/Language/locallang.xlf:myreport.title',
'description' => 'LLL:EXT:my_extension/Resources/Private/Language/locallang.xlf:myreport.description',
],
'routes' => [
'_default' => [
'target' => \Vendor\MyExtension\Controller\MyReportController::class . '::handleRequest',
],
],
],
];
Implement the logic into your class:
.. code-block:: php
moduleTemplateFactory->create($request);
$view->makeDocHeaderModuleMenu();
$view->assign('data', $this->collectReportData());
return $view->renderResponse('MyReport');
}
}
Use a template like below:
.. code-block:: html
My report
Report it!
.. _register-custom-status:
Register a custom status
========================
All status providers must implement
:php:interface:`TYPO3\\CMS\\Reports\\StatusProviderInterface`.
If :yaml:`autoconfigure` is enabled in :file:`Services.yaml`,
the status providers implementing this interface will be automatically
registered.
.. include:: /CodeSnippets/Manual/Autoconfigure.rst.txt
Alternatively, one can manually tag a custom report with the
:yaml:`reports.status` tag: