*/
use TYPO3\CMS\Backend\View\PageLayoutViewDrawItemHookInterface;
+use TYPO3\CMS\Core\Error\Exception;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Object\ObjectManager;
use TYPO3\CMS\Extbase\Service\FlexFormService;
+use TYPO3\CMS\Form\Mvc\Configuration\Exception\ParseErrorException;
use TYPO3\CMS\Form\Mvc\Persistence\FormPersistenceManagerInterface;
use TYPO3\CMS\Lang\LanguageService;
$flexFormData = GeneralUtility::makeInstance(FlexFormService::class)
->convertFlexFormContentToArray($row['pi_flexform']);
- if (!empty($flexFormData['settings']['persistenceIdentifier'])) {
- $persistenceIdentifier = $flexFormData['settings']['persistenceIdentifier'];
- if (empty($persistenceIdentifier)) {
- $formLabel = $this->getLanguageService()->sL(
- 'LLL:EXT:form/Resources/Private/Language/Database.xlf:tt_content.preview.noPersistenceIdentifier'
- );
- } else {
- $formPersistenceManager = GeneralUtility::makeInstance(ObjectManager::class)->get(FormPersistenceManagerInterface::class);
+ $persistenceIdentifier = $flexFormData['settings']['persistenceIdentifier'];
+ if (!empty($persistenceIdentifier)) {
+ $formPersistenceManager = GeneralUtility::makeInstance(ObjectManager::class)->get(FormPersistenceManagerInterface::class);
+ try {
$formDefinition = $formPersistenceManager->load($persistenceIdentifier);
$formLabel = $formDefinition['label'];
+ } catch (ParseErrorException $e) {
+ $formLabel = sprintf(
+ $this->getLanguageService()->sL(
+ 'LLL:EXT:form/Resources/Private/Language/Database.xlf:tt_content.preview.invalidPersistenceIdentifier'
+ ),
+ $persistenceIdentifier
+ );
+ } catch (Exception $e) {
+ $formLabel = sprintf(
+ $this->getLanguageService()->sL(
+ 'LLL:EXT:form/Resources/Private/Language/Database.xlf:tt_content.preview.notExistingdPersistenceIdentifier'
+ ),
+ $persistenceIdentifier
+ );
}
} else {
$formLabel = $this->getLanguageService()->sL(
<trans-unit id="tt_content.preview.noPersistenceIdentifier" xml:space="preserve">
<source>No form selected.</source>
</trans-unit>
+ <trans-unit id="tt_content.preview.invalidPersistenceIdentifier" xml:space="preserve">
+ <source>Invalid form "%s".</source>
+ </trans-unit>
+ <trans-unit id="tt_content.preview.notExistingdPersistenceIdentifier" xml:space="preserve">
+ <source>The form "%s" does not exists.</source>
+ </trans-unit>
<trans-unit id="tt_content.finishersDefinition.EmailToSender.label" xml:space="preserve">
<source>Email to sender</source>