ModifyVersionDifferencesEvent¶
New in version 12.0
This PSR-14 event replaces the
$GLOBALS
hook.
The PSR-14 event \TYPO3\
can be used to modify the version differences data, used for the display in the
Web > Workspaces backend module. Those data can be accessed
with the get
method and updated using the
set
method.
Example¶
<?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);
}
}
New in version 13.0
The PHP attribute \TYPO3\
has been
introduced to tag a PHP class as an event listener. Alternatively, or if you
need to be compatible with older TYPO3 versions, you can also register an
event listener via the Configuration/
file. Switch to
an older version of this page for an example or have a look at the section
Implementing an event listener in your extension.
API¶
- class ModifyVersionDifferencesEvent ¶
-
- Fully qualified name
-
\TYPO3\
CMS\ Workspaces\ Event\ Modify Version Differences Event
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
- Return description
-
String, label: string, content: string}>
- Returns
-
list<array
{field:
- setVersionDifferences ( array $versionDifferences) ¶
-
Modifies the version differences data
- param $versionDifferences
-
the versionDifferences
- getLiveRecordData ( ) ¶
-
Returns the records live data (used to create the version difference)
- Return description
-
String, label: string, content: string}>
- Returns
-
list<array
{field:
- getParameters ( ) ¶
-
Returns meta information like current stage and current workspace
- Returns
-
\std
Class