FluidTYPO3\Flux\Controller\AbstractFluxController::callSubControllerAction PHP Method

callSubControllerAction() protected method

protected callSubControllerAction ( string $extensionName, string $controllerClassName, string $controllerActionName, string $pluginSignature ) : string
$extensionName string
$controllerClassName string
$controllerActionName string
$pluginSignature string
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));
        /** @var \TYPO3\CMS\Extbase\Mvc\Web\Request $subRequest */
        $subRequest = $viewContext->getRequest();
        $subRequest->setArguments($arguments);
        $subRequest->setControllerExtensionName($viewContext->getExtensionName());
        $subRequest->setControllerVendorName($viewContext->getVendorName());
        $subRequest->setControllerActionName($this->provider->getControllerActionFromRecord($row));
        $potentialControllerInstance->processRequest($subRequest, $response);
        return $response->getContent();
    }