/** * Allows the widget template root path to be overriden via the framework configuration, * e.g. plugin.tx_extension.view.widget.<WidgetViewHelperClassName>.templateRootPath * * @param \TYPO3\CMS\Extbase\Mvc\View\ViewInterface $view * @return void */ protected function setViewConfiguration(\TYPO3\CMS\Extbase\Mvc\View\ViewInterface $view) { $extbaseFrameworkConfiguration = $this->configurationManager->getConfiguration(\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface::CONFIGURATION_TYPE_FRAMEWORK); $widgetViewHelperClassName = $this->request->getWidgetContext()->getWidgetViewHelperClassName(); $templatePaths = new TemplatePaths($this->controllerContext->getRequest()->getControllerExtensionKey()); $widgetViewConfiguration = null; $parentConfiguration = $view->getTemplatePaths()->toArray(); $rootConfiguration = $templatePaths->toArray(); if (!isset($extbaseFrameworkConfiguration['view']['widget'][$widgetViewHelperClassName])) { $widgetViewConfiguration = array_merge_recursive($parentConfiguration, $rootConfiguration); } else { $widgetViewConfiguration = array_merge_recursive((array) $rootConfiguration, (array) $parentConfiguration, (array) $extbaseFrameworkConfiguration['view']['widget'][$widgetViewHelperClassName]); } $view->getTemplatePaths()->fillFromConfigurationArray($widgetViewConfiguration); }