---
title: "Interfaces"
manual: "Dashboard"
version: "14.3"
permalink: "https://docs.typo3.org/permalink/typo3/cms-dashboard:interfaces@14.3"
source: "Developer/Interfaces.rst"
rendered: "2026-10-13T09:25:04+00:00"
---

# Interfaces {#interfaces}

The following list provides information for all necessary interfaces that are used inside of this documentation.
For up to date information, please check the source code.

-   **class WidgetInterface**

    -   *Fully qualified name:* `\TYPO3\CMS\Dashboard\Widgets\WidgetInterface`

    Has to be implemented by all widgets.
    This interface defines public API used by ext:dashboard to interact with widgets.

    -   **renderWidgetContent()**

        -   *returntype:* string

        *Returns:* The rendered HTML to display.

    -   **getOptions()**

        -   *returntype:* array

        *Returns:* The options of the widget as set in the registration.

-   **class RequestAwareWidgetInterface**

    -   *Fully qualified name:* `\TYPO3\CMS\Dashboard\Widgets\RequestAwareWidgetInterface`

    This interface declares a widget has a dependency to the current PSR-7 request.
    When implemented, the dashboard controller will call `setRequest()` immediately
    after widget instantiation to hand over the current request. Widgets that rely on
    `BackendViewFactory` typically need the current request.

    -   **setRequest(ServerRequestInterface $request)**

        -   *returntype:* void

-   **class WidgetConfigurationInterface**

    -   *Fully qualified name:* `\TYPO3\CMS\Dashboard\Widgets\WidgetConfigurationInterface`

    Used internally in ext:dashboard.
    Used to separate internal configuration from widgets.
    Can be required in widget classes and passed to view.

    -   **getIdentifier()**

        -   *returntype:* string

        *Returns:* Unique identifer of a widget.

    -   **getServiceName()**

        -   *returntype:* string

        *Returns:* Service name providing the widget implementation.

    -   **getGroupNames()**

        -   *returntype:* array

        *Returns:* Group names associated to this widget.

    -   **getTitle()**

        -   *returntype:* string

        *Returns:* Title of a widget, this is used for the widget selector.

    -   **getDescription()**

        -   *returntype:* string

        *Returns:* Description of a widget, this is used for the widget selector.

    -   **getIconIdentifier()**

        -   *returntype:* string

        *Returns:* Icon identifier of a widget, this is used for the widget selector.

    -   **getHeight()**

        -   *returntype:* int

        *Returns:* Height of a widget in rows (1-6).

    -   **getWidth()**

        -   *returntype:* int

        *Returns:* Width of a widget in columns (1-4).

-   **class AdditionalJavaScriptInterface**

    -   *Fully qualified name:* `\TYPO3\CMS\Dashboard\Widgets\AdditionalJavaScriptInterface`

    Widgets implementing this interface will add the provided JavaScript files.
    Those files will be loaded in dashboard view if the widget is added at least once.

    -   **getJsFiles()**

        Returns a list of JavaScript file names that should be included, e.g.:

        ```php
        return [
            'EXT:my_extension/Resources/Public/JavaScript/file.js',
            'EXT:my_extension/Resources/Public/JavaScript/file2.js',
        ];
        ```

        -   *returntype:* array

        *Returns:* List of JS files to load.

-   **class AdditionalCssInterface**

    -   *Fully qualified name:* `\TYPO3\CMS\Dashboard\Widgets\AdditionalCssInterface`

    Widgets implementing this interface will add the provided Css files.
    Those files will be loaded in dashboard view if the widget is added at least once.

    -   **getCssFiles()**

        Returns a list of Css file names that should be included, e.g.:

        ```php
        return [
            'EXT:my_extension/Resources/Public/Css/widgets.css',
            'EXT:my_extension/Resources/Public/Css/list-widget.css',
        ];
        ```

        -   *returntype:* array

        *Returns:* List of Css files to load.

-   **class ButtonProviderInterface**

    -   *Fully qualified name:* `\TYPO3\CMS\Dashboard\Widgets\ButtonProviderInterface`

    -   **getTitle()**

        -   *returntype:* string

        *Returns:* The title used for the button. E.g. an `LLL:EXT:` reference like `LLL:EXT:dashboard/Resources/Private/Language/locallang.xlf:widgets.t3news.moreItems`.

    -   **getLink()**

        -   *returntype:* string

        *Returns:* The link to use for the button. Clicking the button will open the link.

    -   **getTarget()**

        -   *returntype:* string

        *Returns:* The target of the link, e.g. `_blank`. `LLL:EXT:dashboard/Resources/Private/Language/locallang.xlf:widgets.t3news.moreItems`.

-   **class NumberWithIconDataProviderInterface**

    -   *Fully qualified name:* `\TYPO3\CMS\Dashboard\Widgets\NumberWithIconDataProviderInterface`

    -   **getNumber()**

        -   *returntype:* integer

        *Returns:* The number to display for an number widget.

-   **class EventDataInterface**

    -   *Fully qualified name:* `\TYPO3\CMS\Dashboard\Widgets\EventDataInterface`

    -   **getEventData()**

        -   *returntype:* array

        *Returns:* Returns data which should be send to the widget as JSON encoded value.

-   **class ChartDataProviderInterface**

    -   *Fully qualified name:* `\TYPO3\CMS\Dashboard\Widgets\ChartDataProviderInterface`

    -   **getChartData()**

        -   *returntype:* array

        *Returns:* Provide the data for a graph. The data and options you have depend on the type of chart. More information can be found in the documentation of the specific type: -   **Bar** [https://www.chartjs.org/docs/latest/charts/bar.html#data-structure](https://www.chartjs.org/docs/latest/charts/bar.html#data-structure) -   **Doughnut** [https://www.chartjs.org/docs/latest/charts/doughnut.html#data-structure](https://www.chartjs.org/docs/latest/charts/doughnut.html#data-structure)

-   **class ListDataProviderInterface**

    -   *Fully qualified name:* `\TYPO3\CMS\Dashboard\Widgets\ListDataProviderInterface`

    -   **getItems()**

        -   *returntype:* array

        *Returns:* Provide the array if items. Each entry should be a single string.
