/** * Reduce the Yaml settings by the 'formEditor' keyword. * * @return array */ protected function getFormEditorDefinitions() : array { $formEditorDefinitions = []; foreach ([$this->prototypeConfiguration, $this->prototypeConfiguration['formEditor']] as $configuration) { foreach ($configuration as $firstLevelItemKey => $firstLevelItemValue) { if (substr($firstLevelItemKey, -10) !== 'Definition') { continue; } $reducedKey = substr($firstLevelItemKey, 0, -10); foreach ($configuration[$firstLevelItemKey] as $formEditorDefinitionKey => $formEditorDefinitionValue) { if (isset($formEditorDefinitionValue['formEditor'])) { $formEditorDefinitionValue = array_intersect_key($formEditorDefinitionValue, array_flip(['formEditor'])); $formEditorDefinitions[$reducedKey][$formEditorDefinitionKey] = $formEditorDefinitionValue['formEditor']; } else { $formEditorDefinitions[$reducedKey][$formEditorDefinitionKey] = $formEditorDefinitionValue; } } } } $formEditorDefinitions = ArrayUtility::reIndexNumericArrayKeysRecursive($formEditorDefinitions); $formEditorDefinitions = TranslationService::getInstance()->translateValuesRecursive($formEditorDefinitions, $this->prototypeConfiguration['formEditor']['translationFile']); return $formEditorDefinitions; }
/** * Returns the json encoded data which is used by the form editor * JavaScript app. * * @return string */ protected function getFormManagerAppInitialData() : string { $formManagerAppInitialData = ['selectablePrototypesConfiguration' => $this->formSettings['formManager']['selectablePrototypesConfiguration'], 'accessibleFormStorageFolders' => $this->getAccessibleFormStorageFolders(), 'endpoints' => ['create' => $this->controllerContext->getUriBuilder()->uriFor('create'), 'duplicate' => $this->controllerContext->getUriBuilder()->uriFor('duplicate'), 'delete' => $this->controllerContext->getUriBuilder()->uriFor('delete'), 'references' => $this->controllerContext->getUriBuilder()->uriFor('references')]]; $formManagerAppInitialData = ArrayUtility::reIndexNumericArrayKeysRecursive($formManagerAppInitialData); $formManagerAppInitialData = TranslationService::getInstance()->translateValuesRecursive($formManagerAppInitialData, $this->formSettings['formManager']['translationFile']); return json_encode($formManagerAppInitialData); }