Hooks and events

PSR-14 Events

PrepareFieldUpdateEvent

Event Class

TYPO3CMSFrontendEditingControllerEventPrepareFieldUpdateEvent

Event Handler Interface

TYPO3CMSFrontendEditingControllerEventPrepareFieldUpdateEventHandlerInterface

Called before saved data from Frontend Editing is persisted to the database.

Example event handler

<?php

declare(strict_types=1);

namespace Foo\Bar\EventHandler;

use TYPO3\CMS\FrontendEditing\Controller\Event\PrepareFieldUpdateEvent;
use TYPO3\CMS\FrontendEditing\Controller\Event\PrepareFieldUpdateEventHandlerInterface;

class RemoveUtf8CharactersPrepareFieldUpdateEventHandler implements PrepareFieldUpdateEventHandlerInterface
{
    public function __invoke(PrepareFieldUpdateEvent $event): void
    {
      $event->setContent(utf8_decode($event->getContent()));
    }
}

Hooks

This is used in case you need to influence on a process of wrapping with drop zone of some specific content elements

  • Register your hook in ext_localconf.php

    <?php
    
    $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['frontend_editing']['FrontendEditingPanel']['dropzoneModifiers'][] = \Your\NameSpace\YourClass::class;
    
  • Create hook class to control drop zone wrapping process

    <?php
    
    use Your\NameSpace;
    
    class YourClass implements \TYPO3\CMS\FrontendEditing\EditingPanel\FrontendEditingDropzoneModifier
    {
        /**
        * @param string $table
        * @param integer $editUid
        * @param array $dataArr
        * @param string $content
        * @return string $content
        */
        public function wrapWithDropzone(
          string $table,
          int $editUid,
          array $dataArr,
          string &$content
        ): bool {
            // TODO: Implement wrapWithDropzone() method.
            // return true if no need for further processing, otherwise false
        }
    }