public function getPluginViewDefinitionByAction($controllerObjectName, $actionName)
{
$pluginNodeTypes = $this->nodeTypeManager->getSubNodeTypes('Neos.Neos:Plugin', false);
$matchingPluginViewDefinitions = [];
foreach ($pluginNodeTypes as $pluginNodeType) {
/** @var $pluginViewDefinition PluginViewDefinition */
foreach ($this->getPluginViewDefinitionsByPluginNodeType($pluginNodeType) as $pluginViewDefinition) {
if ($pluginViewDefinition->matchesControllerActionPair($controllerObjectName, $actionName) !== true) {
continue;
}
$matchingPluginViewDefinitions[] = $pluginViewDefinition;
}
}
if (count($matchingPluginViewDefinitions) > 1) {
throw new Neos\Exception(sprintf('More than one PluginViewDefinition found for controller "%s", action "%s":%s', $controllerObjectName, $actionName, chr(10) . implode(chr(10), $matchingPluginViewDefinitions)), 1377597671);
}
return count($matchingPluginViewDefinitions) > 0 ? current($matchingPluginViewDefinitions) : null;
}