Add plugin name to AssignTemplateVariables event

This allows listeners to react differently to different plugins.
This commit is contained in:
Daniel Siepmann 2021-11-24 08:14:33 +01:00
parent cbc24ce88e
commit eb2a143031
Signed by: Daniel Siepmann
GPG key ID: 33D6629915560EF4
3 changed files with 39 additions and 5 deletions

View file

@ -176,7 +176,11 @@ class CalendarController extends ActionController
private function assignVariables(array $variables): void
{
$event = GeneralUtility::makeInstance(AssignTemplateVariables::class, $variables);
$event = GeneralUtility::makeInstance(
AssignTemplateVariables::class,
$variables,
$this->request->getPluginName()
);
$this->eventDispatcher->dispatch($event);
$this->view->assignMultiple($event->getVariables());
}

View file

@ -28,10 +28,22 @@ final class AssignTemplateVariables
*/
private $variables;
/**
* @var string
*/
private $pluginName;
public function __construct(
array $variables
array $variables,
string $pluginName
) {
$this->variables = $variables;
$this->pluginName = $pluginName;
}
public function getPluginName(): string
{
return $this->pluginName;
}
public function getVariables(): array

View file

@ -35,12 +35,28 @@ class AssignTemplateVariablesTest extends TestCase
public function canBeCreated(): void
{
$subject = new AssignTemplateVariables(
[]
[],
''
);
self::assertInstanceOf(AssignTemplateVariables::class, $subject);
}
/**
* @test
*/
public function returnsPluginName(): void
{
$subject = new AssignTemplateVariables(
[],
'Example'
);
$result = $subject->getPluginName();
self::assertSame('Example', $result);
}
/**
* @test
*/
@ -49,7 +65,8 @@ class AssignTemplateVariablesTest extends TestCase
$subject = new AssignTemplateVariables(
[
'variable1' => 'value1',
]
],
''
);
$result = $subject->getVariables();
@ -67,7 +84,8 @@ class AssignTemplateVariablesTest extends TestCase
$subject = new AssignTemplateVariables(
[
'variable1' => 'value1',
]
],
''
);
$subject->setVariables([