/** * Render a page from the formDefinition which was build by the form editor. * Use the frontend rendering and set the form framework to preview mode. * * @param array $formDefinition * @param int $pageIndex * @param string $prototypeName * @return string * @internal */ public function renderFormPageAction(array $formDefinition, int $pageIndex, string $prototypeName = null) : string { $formDefinition = ArrayUtility::stripTagsFromValuesRecursive($formDefinition); $formDefinition = $this->convertJsonArrayToAssociativeArray($formDefinition); if (empty($prototypeName)) { $prototypeName = isset($formDefinition['prototypeName']) ? $formDefinition['prototypeName'] : 'standard'; } $formFactory = $this->objectManager->get(ArrayFormFactory::class); $formDefinition = $formFactory->build($formDefinition, $prototypeName); $formDefinition->setRenderingOption('previewMode', true); $form = $formDefinition->bind($this->request, $this->response); $form->overrideCurrentPage($pageIndex); return $form->render(); }