ModifyVersionDifferencesEvent 

The PSR-14 event \TYPO3\CMS\Workspaces\Event\ModifyVersionDifferencesEvent can be used to modify the version differences data, used for the display in the Content > Workspaces backend module. Those data can be accessed with the getVersionDifferences() method and updated using the setVersionDifferences(array $versionDifferences) method.

Example 

EXT:my_extension/Classes/Workspaces/EventListener/MyEventListener.php
<?php

declare(strict_types=1);

namespace MyVendor\MyExtension\Workspaces\EventListener;

use TYPO3\CMS\Core\Attribute\AsEventListener;
use TYPO3\CMS\Core\Utility\DiffUtility;
use TYPO3\CMS\Workspaces\Event\ModifyVersionDifferencesEvent;

#[AsEventListener(
  identifier: 'my-extension/modify-version-differences',
)]
final readonly class MyEventListener
{
  public function __construct(
    private DiffUtility $diffUtility,
  ) {}

  public function __invoke(ModifyVersionDifferencesEvent $event): void
  {
    $differences = $event->getVersionDifferences();
    foreach ($differences as $key => $difference) {
      if ($difference['field'] === 'my_test_field') {
        $differences[$key]['content'] = $this->diffUtility->diff('a', 'b');
      }
    }

    $event->setVersionDifferences($differences);
  }
}
Copied!

API 

class ModifyVersionDifferencesEvent
Fully qualified name
\TYPO3\CMS\Workspaces\Event\ModifyVersionDifferencesEvent

Listeners to this event will be able to modify the differences of versioned records

getVersionDifferences()

Get the version differences.

This array contains the differences of each field with the following keys:

  • field: The corresponding field name
  • label: The corresponding field label
  • content: The field values difference
Returns
list<array{field: string,label: string,content: string}>
setVersionDifferences(array $versionDifferences)

Modifies the version differences data

param $versionDifferences

the versionDifferences

getLiveRecordData()

Returns the records live data (used to create the version difference)

Returns
list<array{field: string,label: string,content: string}>
getParameters()

Returns meta information like current stage and current workspace

Returns
stdClass