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 

identifier

identifier
Type
string

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

options

options
Type
array

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

flexFormFinisher

flexFormFinisher
Type
array

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

overrideFinishers

overrideFinishers
Type
bool

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

previewHtml

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 

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
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>'
        );
    }
}
Copied!

Register the listener in your Services.yaml.

EXT:my_extension/Configuration/Services.yaml
MY\MyExtension\EventListener\RenderFinisherPreviewEventListener:
  tags:
    - name: event.listener
      identifier: 'my-extension/render-finisher-preview-event'
      event: LIA\LiaForm\Event\RenderFinisherPreviewEvent
Copied!