---
title: "RenderFinisherPreviewEvent"
manual: "LIA Form"
version: "2.2"
permalink: "https://docs.typo3.org/permalink/lia/lia_form:renderfinisherpreviewevent@2.2"
source: "Events/RenderFinisherPreviewEvent.rst"
rendered: "2026-09-29T13:27:41+00:00"
---

# RenderFinisherPreviewEvent {#renderfinisherpreviewevent}

This event is dispatched once per finisher while the page module preview of a
`form_formframework` content element is rendered (in the finisher overview
provided by this extension's `FormPreviewRenderer`). It lets an extension
supply a custom preview for its own finisher types. If a listener handles the
event, its HTML is used and the built-in rendering for that finisher is
skipped.

## Attributes {#attributes}

-   **identifier**

    -   *Type:* string

    The finisher identifier (e.g. `EmailToReceiver` or your own
    `MyCustomFinisher`). Read-only, via `getIdentifier()`.

-   **options**

    -   *Type:* array

    The finisher options from the YAML form definition. Read-only, via
    `getOptions()`.

-   **flexFormFinisher**

    -   *Type:* array

    The finisher settings coming from the content element's FlexForm
    overrides. Read-only, via `getFlexFormFinisher()`.

-   **overrideFinishers**

    -   *Type:* bool

    Whether FlexForm overrides are enabled for this element. Read-only, via
    `isOverrideFinishers()`.

-   **previewHtml**

    -   *Type:* string

    Set via `setPreviewHtml()`. Calling it marks the event as handled
    (`isHandled()`), so the default rendering is skipped for this finisher.

## Subscribe this event {#subscribe-this-event}

Create an EventListener in your extension that reacts to your own finisher
identifier and returns its preview markup.

**EXT:my_extension/Classes/EventListener/RenderFinisherPreviewEventListener.php**

```php
<?php
declare(strict_types=1);

namespace MY\MyExtension\EventListener;

use LIA\LiaForm\Event\RenderFinisherPreviewEvent;

final class RenderFinisherPreviewEventListener
{
    public function __invoke(RenderFinisherPreviewEvent $event): void
    {
        if ($event->getIdentifier() !== 'MyCustomFinisher') {
            return;
        }

        $options = $event->getOptions();
        $event->setPreviewHtml(
            '<em>My custom finisher → ' . htmlspecialchars((string)($options['target'] ?? '')) . '</em>'
        );
    }
}
```

Register the listener in your `Services.yaml`.

**EXT:my_extension/Configuration/Services.yaml**

```yaml
MY\MyExtension\EventListener\RenderFinisherPreviewEventListener:
  tags:
    - name: event.listener
      identifier: 'my-extension/render-finisher-preview-event'
      event: LIA\LiaForm\Event\RenderFinisherPreviewEvent
```
