/**
  * @return string
  * @route off
  */
 public function renderAction()
 {
     $row = $this->getRecord();
     $extensionKey = $this->provider->getExtensionKey($row);
     $pluginSignature = 'tx_' . str_replace('_', '', $extensionKey) . '_' . str_replace('_', '', strtolower($this->request->getPluginName()));
     $controllerExtensionKey = $this->provider->getControllerExtensionKeyFromRecord($row);
     $requestParameterActionName = ResolveUtility::resolveOverriddenFluxControllerActionNameFromRequestParameters($pluginSignature);
     $controllerActionName = $this->provider->getControllerActionFromRecord($row);
     $overriddenControllerActionName = NULL !== $requestParameterActionName ? $requestParameterActionName : $controllerActionName;
     $controllerName = $this->request->getControllerName();
     return $this->performSubRendering($controllerExtensionKey, $controllerName, $overriddenControllerActionName, $pluginSignature);
 }
示例#2
0
 /**
  * @param string $extensionName
  * @param string $controllerClassName
  * @param string $controllerActionName
  * @param string $pluginSignature
  * @return string
  */
 protected function callSubControllerAction($extensionName, $controllerClassName, $controllerActionName, $pluginSignature)
 {
     /** @var Response $response */
     $post = GeneralUtility::_POST($pluginSignature);
     $row = $this->getRecord();
     $response = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Mvc\\Web\\Response');
     $arguments = (array) (TRUE === is_array($post) ? $post : GeneralUtility::_GET($pluginSignature));
     $potentialControllerInstance = $this->objectManager->get($controllerClassName);
     $viewContext = $this->provider->getViewContext($row, $this->request);
     $viewContext->setPackageName($this->provider->getControllerPackageNameFromRecord($row));
     $subRequest = $viewContext->getRequest();
     $subRequest->setControllerExtensionName($viewContext->getExtensionName());
     $subRequest->setControllerVendorName($viewContext->getVendorName());
     $subRequest->setControllerActionName($this->provider->getControllerActionFromRecord($row));
     $potentialControllerInstance->processRequest($subRequest, $response);
     return $response->getContent();
 }