TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:24 +02:00
commit aad9daaefd
1506 changed files with 94005 additions and 0 deletions
@@ -0,0 +1,55 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">
<f:if condition="{element.properties.elementDescription}">
<f:variable name="aria" value="{describedby: '{element.uniqueIdentifier}-desc'}" />
</f:if>
<f:if condition="{validationResults.errors}">
<f:variable name="aria" value="{invalid: 'true', describedby: '{element.uniqueIdentifier}-errors'}" />
</f:if>
<f:render partial="Field/Field" arguments="{element: element, renderFieldset: '{element.properties.renderFieldset}', doNotShowLabel: 1}" contentAs="elementContent">
<div class="{element.properties.containerClassAttribute}">
<label class="{element.properties.labelClassAttribute}" for="{element.uniqueIdentifier}">{formvh:translateElementProperty(element: element, property: 'label')}
<f:if condition="{element.required}">
<f:render partial="Field/Required" arguments="{element: element}"/>
</f:if>
</label>
<f:form.password
property="{element.identifier}.password"
id="{element.uniqueIdentifier}"
class="{element.properties.elementClassAttribute}{f:if(condition: '{validationResults.errors}', then: ' {element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}')}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
aria="{aria}"
/>
<f:if condition="{formvh:translateElementProperty(element: element, property: 'passwordDescription')}">
<span class="{element.rootForm.renderingOptions.fieldProperties.descriptionClassAttribute}">{formvh:translateElementProperty(element: element, property: 'passwordDescription')}</span>
</f:if>
</div>
<div class="{element.properties.containerClassAttribute}{f:if(condition: '{validationResults.errors}', then: ' {element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}')}">
<f:if condition="{formvh:translateElementProperty(element: element, property: 'confirmationLabel')}">
<label class="{element.properties.labelClassAttribute}" for="{element.uniqueIdentifier}-confirmation">{formvh:translateElementProperty(element: element, property: 'confirmationLabel')}
<f:if condition="{element.required}">
<f:render partial="Field/Required" arguments="{element: element}"/>
</f:if>
</label>
</f:if>
<f:form.password
property="{element.identifier}.confirmation"
id="{element.uniqueIdentifier}-confirmation"
class="{element.properties.confirmationClassAttribute}{f:if(condition: '{validationResults.errors}', then: ' {element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}')}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
aria="{aria}"
/>
</div>
<f:if condition="{validationResults.errors} && {element.properties.renderFieldset} == '1'">
<span id="{element.uniqueIdentifier}-errors" class="{element.rootForm.renderingOptions.fieldProperties.errorMsgClassAttribute}" role="alert">
<f:for each="{validationResults.errors}" as="error">
<f:format.htmlspecialchars>{formvh:translateElementError(element: element, error: error)}</f:format.htmlspecialchars>
<br/>
</f:for>
</span>
</f:if>
</f:render>
</f:form.validationResults>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,28 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">
<f:if condition="{element.properties.elementDescription}">
<f:variable name="aria" value="{describedby: '{element.uniqueIdentifier}-desc'}" />
</f:if>
<f:if condition="{validationResults.errors}">
<f:variable name="aria" value="{invalid: 'true', describedby: '{element.uniqueIdentifier}-errors'}" />
</f:if>
<f:variable name="errorClass">{f:if(condition: '{validationResults.errors}', then: ' {element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}')}</f:variable>
<f:render partial="Field/Field" arguments="{element: element, doNotShowLabel: 1}" contentAs="elementContent">
<div class="{element.properties.labelClassAttribute}{errorClass}">
<f:form.checkbox
property="{element.identifier}"
id="{element.uniqueIdentifier}"
class="{element.properties.elementClassAttribute}"
value="{element.properties.value}"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
aria="{aria}"
/>
<label class="{element.properties.labelTextClassAttribute}" for="{element.uniqueIdentifier}">{formvh:translateElementProperty(element: element, property: 'label') -> f:sanitize.html() -> f:transform.html() -> f:format.stripTags(allowedTags: '<a><br><i><strong>')}<f:if condition="{element.required}"><f:render partial="Field/Required" arguments="{element: element}"/></f:if></label>
</div>
</f:render>
</f:form.validationResults>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,27 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:if condition="{element.rootForm.renderingOptions.previewMode}">
<f:then>
<div class="{element.properties.outerContainerClassAttribute}">
<f:if condition="{element.properties.contentElementUid}">
<f:then>
<formvh:be.renderContentElementPreview
contentElementUid="{element.properties.contentElementUid}"
formPersistenceIdentifier="{element.rootForm.renderingOptions.formPersistenceIdentifier}" />
</f:then>
<f:else>
<f:translate key="LLL:EXT:form/Resources/Private/Language/Database.xlf:formEditor.elements.ContentElement.selectContentElement" />
</f:else>
</f:if>
</div>
</f:then>
<f:else>
<f:if condition="{element.properties.contentElementUid}">
<div class="{element.properties.outerContainerClassAttribute}{f:if(condition: element.properties.elementClassAttribute, then: ' {element.properties.elementClassAttribute}')}">
<f:cObject typoscriptObjectPath="lib.tx_form.contentElementRendering">{element.properties.contentElementUid}</f:cObject>
</div>
</f:if>
</f:else>
</f:if>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,47 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">
<f:if condition="{element.properties.elementDescription}">
<f:variable name="aria" value="{describedby: '{element.uniqueIdentifier}-desc'}"/>
</f:if>
<f:if condition="{validationResults.errors}">
<f:variable name="aria" value="{invalid: 'true', describedby: '{element.uniqueIdentifier}-errors'}"/>
</f:if>
<f:render partial="Field/Field" arguments="{element: element}" contentAs="elementContent">
<f:if condition="{element.properties.prependOptionLabel}">
<f:then>
<f:form.countrySelect
property="{element.identifier}"
id="{element.uniqueIdentifier}"
class="{element.properties.elementClassAttribute}"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
prependOptionLabel="{formvh:translateElementProperty(element: element, property: 'prependOptionLabel')}"
prependOptionValue="{formvh:translateElementProperty(element: element, property: 'prependOptionValue')}"
sortByOptionLabel="true"
prioritizedCountries="{element.properties.prioritizedCountries}"
onlyCountries="{element.properties.onlyCountries}"
excludeCountries="{element.properties.excludeCountries}"
aria="{aria}"
/>
</f:then>
<f:else>
<f:form.countrySelect
property="{element.identifier}"
id="{element.uniqueIdentifier}"
class="{element.properties.elementClassAttribute}"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
sortByOptionLabel="true"
prioritizedCountries="{element.properties.prioritizedCountries}"
onlyCountries="{element.properties.onlyCountries}"
excludeCountries="{element.properties.excludeCountries}"
aria="{aria}"
/>
</f:else>
</f:if>
</f:render>
</f:form.validationResults>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,24 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">
<f:if condition="{element.properties.elementDescription}">
<f:variable name="aria" value="{describedby: '{element.uniqueIdentifier}-desc'}"/>
</f:if>
<f:if condition="{validationResults.errors}">
<f:variable name="aria" value="{invalid: 'true', describedby: '{element.uniqueIdentifier}-errors'}"/>
</f:if>
<f:render partial="Field/Field" arguments="{element: element}" contentAs="elementContent">
<f:form.textfield
type="date"
property="{element.identifier}"
id="{element.uniqueIdentifier}"
class="{element.properties.elementClassAttribute}"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
aria="{aria}"
/>
</f:render>
</f:form.validationResults>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,23 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">
<f:if condition="{element.properties.elementDescription}">
<f:variable name="aria" value="{describedby: '{element.uniqueIdentifier}-desc'}" />
</f:if>
<f:if condition="{validationResults.errors}">
<f:variable name="aria" value="{invalid: 'true', describedby: '{element.uniqueIdentifier}-errors'}" />
</f:if>
<f:render partial="Field/Field" arguments="{element: element}" contentAs="elementContent">
<f:form.textfield
type="email"
property="{element.identifier}"
id="{element.uniqueIdentifier}"
class="{element.properties.elementClassAttribute}"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
aria="{aria}"
/>
</f:render>
</f:form.validationResults>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,43 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">
<f:if condition="{renderFieldset} == 1">
<f:then>
<fieldset class="{element.properties.fieldsetClassAttribute}{f:if(condition: '{validationResults.errors.0}', then: ' {element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}')}">
<legend class="{f:if(condition: '{doNotShowLabel} == 1', then: ' {element.rootForm.renderingOptions.fieldProperties.visuallyHiddenClassAttribute}')}">{formvh:translateElementProperty(element: element, property: 'label')}
<f:if condition="{element.required}">
<f:render partial="Field/Required" arguments="{element: element}"/>
</f:if>
</legend>
<f:render section="Element" arguments="{_all}"/>
</fieldset>
</f:then>
<f:else>
<div class="{element.properties.containerClassAttribute}{f:if(condition: '{validationResults.errors.0}', then: ' {element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}')}">
<f:if condition="{doNotShowLabel} != 1">
<label class="{element.properties.labelClassAttribute}{f:if(condition: '{doNotShowLabel} == 1', then: ' {element.rootForm.renderingOptions.fieldProperties.visuallyHiddenClassAttribute}')}" for="{element.uniqueIdentifier}">{formvh:translateElementProperty(element: element, property: 'label')}
<f:if condition="{element.required}">
<f:render partial="Field/Required" arguments="{element: element}"/>
</f:if>
</label>
</f:if>
<f:render section="Element" arguments="{_all}"/>
</div>
</f:else>
</f:if>
</f:form.validationResults>
<f:section name="Element">
<f:format.raw>{elementContent}</f:format.raw>
<f:if condition="{validationResults.flattenedErrors} && {renderFieldset} != 1">
<span id="{element.uniqueIdentifier}-errors" class="{element.rootForm.renderingOptions.fieldProperties.errorMsgClassAttribute}" role="alert">
<f:for each="{validationResults.errors}" as="error">
<f:format.htmlspecialchars>{formvh:translateElementError(element: element, error: error)}</f:format.htmlspecialchars>
<br/>
</f:for>
</span>
</f:if>
<f:if condition="{element.properties.elementDescription}">
<span id="{element.uniqueIdentifier}-desc" class="{element.rootForm.renderingOptions.fieldProperties.descriptionClassAttribute}">{formvh:translateElementProperty(element: element, property: 'elementDescription')}</span>
</f:if>
</f:section>
</html>
@@ -0,0 +1,3 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<span class="{element.rootForm.renderingOptions.fieldProperties.requiredMarkClassAttribute}">*</span>
</html>
@@ -0,0 +1,19 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:variable name="fluidAdditionalAttributes" value="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"/>
<f:variable name="additionalAttributes" value="" />
<f:if condition="{fluidAdditionalAttributes}">
<f:for each="{fluidAdditionalAttributes}" as="value" key="key">
<f:variable name="additionalAttributes" value='{additionalAttributes} {key}="{value}"' />
</f:for>
</f:if>
<fieldset id="{element.uniqueIdentifier}" class="{element.properties.elementClassAttribute}" {additionalAttributes -> f:format.raw()}>
<f:if condition="{element.label}">
<legend>{formvh:translateElementProperty(element: element, property: 'label')}</legend>
</f:if>
<f:for each="{element.elements}" as="element">
<f:render partial="{element.templateName}" arguments="{element: element}" />
</f:for>
</fieldset>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,67 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">
<f:if condition="{element.properties.elementDescription}">
<f:variable name="aria" value="{describedby: '{element.uniqueIdentifier}-desc'}"/>
</f:if>
<f:if condition="{validationResults.errors}">
<f:variable name="aria" value="{invalid: 'true', describedby: '{element.uniqueIdentifier}-errors'}"/>
</f:if>
<f:render partial="Field/Field" arguments="{element: element}" contentAs="elementContent">
<formvh:form.uploadedResource
property="{element.identifier}"
as="resource"
id="{element.uniqueIdentifier}"
class="{element.properties.elementClassAttribute}"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
accept="{element.properties.allowedMimeTypes}"
aria="{aria}"
multiple="{element.properties.multiple}"
>
<f:if condition="{resource}">
<f:if condition="{element.properties.multiple}">
<f:then>
<ul id="{element.uniqueIdentifier}-preview" class="form-element-fileupload-list">
<f:for each="{resource}" as="file" iteration="iterator">
<li class="form-element-fileupload-item">
<span class="form-element-fileupload-name">{file.originalResource.originalFile.name}</span>
<f:if condition="{element.properties.allowRemoval}">
<label class="form-element-fileupload-remove">
<formvh:form.uploadDeleteCheckbox
property="{element.identifier}"
fileReference="{file}"
fileIndex="{iterator.index}"
/>
<f:translate key="upload.remove" domain="form" default="Remove" />
<span class="visually-hidden">{file.originalResource.originalFile.name}</span>
</label>
</f:if>
</li>
</f:for>
</ul>
</f:then>
<f:else>
<div id="{element.uniqueIdentifier}-preview" class="form-element-fileupload-preview">
<span class="form-element-fileupload-name">{resource.originalResource.originalFile.name}</span>
<f:if condition="{element.properties.allowRemoval}">
<label class="form-element-fileupload-remove">
<formvh:form.uploadDeleteCheckbox
property="{element.identifier}"
fileReference="{resource}"
fileIndex="0"
/>
<f:translate key="upload.remove" domain="form" default="Remove" />
<span class="visually-hidden">{resource.originalResource.originalFile.name}</span>
</label>
</f:if>
</div>
</f:else>
</f:if>
</f:if>
</formvh:form.uploadedResource>
</f:render>
</f:form.validationResults>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,17 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<nav class="{form.renderingOptions.formNavigation.navigationClassAttribute}" aria-label="{form.renderingOptions.formNavigation.navigationAriaLabelAttribute}">
<f:if condition="{form.previousEnabledPage}">
<f:form.button property="__currentPage" value="{form.previousEnabledPage.index}" formnovalidate="formnovalidate" class="{form.renderingOptions.formNavigation.btnPreviousClassAttribute}">{formvh:translateElementProperty(element: form.currentPage, renderingOptionProperty: 'previousButtonLabel')}</f:form.button>
</f:if>
<f:if condition="{form.nextEnabledPage}">
<f:then>
<f:form.button property="__currentPage" value="{form.nextEnabledPage.index}" class="{form.renderingOptions.formNavigation.btnNextClassAttribute}">{formvh:translateElementProperty(element: form.currentPage, renderingOptionProperty: 'nextButtonLabel')}</f:form.button>
</f:then>
<f:else>
<f:form.button property="__currentPage" value="{form.pages -> f:count()}" class="{form.renderingOptions.formNavigation.btnSubmitClassAttribute}">
{formvh:translateElementProperty(element: form, renderingOptionProperty: 'submitButtonLabel')}
</f:form.button>
</f:else>
</f:if>
</nav>
</html>
@@ -0,0 +1,7 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:for each="{element.elements}" as="element">
<f:render partial="{element.templateName}" arguments="{element: element}" />
</f:for>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,13 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<div class="{f:if(condition: element.properties.elementClassAttribute, then: '{element.properties.elementClassAttribute}')}">
<f:for each="{element.elements}" as="element">
<f:if condition="{element.enabled}">
<div class="{formvh:gridColumnClassAutoConfiguration(element: element)}">
<f:render partial="{element.templateName}" arguments="{element: element}" />
</div>
</f:if>
</f:for>
</div>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,10 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:form.hidden
property="{element.identifier}"
id="{element.uniqueIdentifier}"
class="{element.properties.elementClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
/>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,10 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<f:if condition="{element.properties.renderAsHiddenField}">
<f:then>
<f:form.hidden property="{element.identifier}" id="{element.uniqueIdentifier}" data="{id: element.identifier}" />
</f:then>
<f:else>
<f:form.textfield property="{element.identifier}" id="{element.uniqueIdentifier}" class="{element.properties.elementClassAttribute}" data="{id: element.identifier}" additionalAttributes="{aria-hidden: 'true'}" tabindex="-1" style="{element.properties.styleAttribute}" />
</f:else>
</f:if>
</html>
@@ -0,0 +1,71 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">
<f:if condition="{element.properties.elementDescription}">
<f:variable name="aria" value="{describedby: '{element.uniqueIdentifier}-desc'}" />
</f:if>
<f:if condition="{validationResults.errors}">
<f:variable name="aria" value="{invalid: 'true', describedby: '{element.uniqueIdentifier}-errors'}" />
</f:if>
<f:render partial="Field/Field" arguments="{element: element}" contentAs="elementContent">
<formvh:form.uploadedResource
property="{element.identifier}"
as="image"
id="{element.uniqueIdentifier}"
class="{element.properties.elementClassAttribute}"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
accept="{element.properties.allowedMimeTypes}"
aria="{aria}"
multiple="{element.properties.multiple}"
>
<f:if condition="{image}">
<f:if condition="{element.properties.multiple}">
<f:then>
<ul id="{element.uniqueIdentifier}-preview" class="form-element-imageupload-list">
<f:for each="{image}" as="singleImage" iteration="iterator">
<li class="form-element-imageupload-item form-element-imageupload-item-{singleImage.originalResource.extension}">
<a href="{f:uri.image(image: singleImage, maxWidth: element.properties.imageLinkMaxWidth)}" class="form-element-imageupload-link">
<f:image image="{singleImage}" maxWidth="{element.properties.imageMaxWidth}" maxHeight="{element.properties.imageMaxHeight}" alt="{singleImage.originalResource.originalFile.name}" class="form-element-imageupload-thumbnail"/>
</a>
<f:if condition="{element.properties.allowRemoval}">
<label class="form-element-imageupload-remove">
<formvh:form.uploadDeleteCheckbox
property="{element.identifier}"
fileReference="{singleImage}"
fileIndex="{iterator.index}"
/>
<f:translate key="upload.remove" domain="form" default="Remove" />
<span class="visually-hidden">{singleImage.originalResource.originalFile.name}</span>
</label>
</f:if>
</li>
</f:for>
</ul>
</f:then>
<f:else>
<div id="{element.uniqueIdentifier}-preview" class="form-element-imageupload-preview">
<a href="{f:uri.image(image: image, maxWidth: element.properties.imageLinkMaxWidth)}" class="form-element-imageupload-link">
<f:image image="{image}" maxWidth="{element.properties.imageMaxWidth}" maxHeight="{element.properties.imageMaxHeight}" alt="{image.originalResource.originalFile.name}" class="form-element-imageupload-thumbnail"/>
</a>
<f:if condition="{element.properties.allowRemoval}">
<label class="form-element-imageupload-remove">
<formvh:form.uploadDeleteCheckbox
property="{element.identifier}"
fileReference="{image}"
fileIndex="0"
/>
<f:translate key="upload.remove" domain="form" default="Remove" />
<span class="visually-hidden">{image.originalResource.originalFile.name}</span>
</label>
</f:if>
</div>
</f:else>
</f:if>
</f:if>
</formvh:form.uploadedResource>
</f:render>
</f:form.validationResults>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,44 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:render partial="Field/Field" arguments="{element: element, renderFieldset: '{element.properties.renderFieldset}', doNotShowLabel: '{element.properties.legendVisuallyHidden}'}" contentAs="elementContent">
<f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">
<f:variable name="errorClass">{f:if(condition: '{validationResults.errors}', then: '{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}')}</f:variable>
<div id="{element.uniqueIdentifier}" class="{errorClass}" role="radiogroup" aria-label="{element.label}">
<f:for each="{element.properties.options}" as="label" key="value" iteration="idIterator">
<f:if condition="{element.properties.elementDescription}">
<f:variable name="aria" value="{describedby: '{element.uniqueIdentifier}-desc'}" />
</f:if>
<f:if condition="{validationResults.errors} && {idIterator.isFirst}">
<f:variable name="aria" value="{invalid: 'true', describedby: '{element.uniqueIdentifier}-errors'}" />
</f:if>
<div class="{element.properties.containerClassAttribute}">
<label class="{element.properties.labelClassAttribute}" for="{element.uniqueIdentifier}-{idIterator.index}">
<f:form.checkbox
property="{element.identifier}"
multiple="1"
id="{element.uniqueIdentifier}-{idIterator.index}"
class="{element.properties.elementClassAttribute}"
value="{value}"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
aria="{aria}"
/>
<span class="{element.properties.labelTextClassAttribute}">{formvh:translateElementProperty(element: element, property: '{0: \'options\', 1: value}')}</span>
</label>
</div>
</f:for>
</div>
<f:if condition="{validationResults.flattenedErrors} && {element.properties.renderFieldset} == '1'">
<span id="{element.uniqueIdentifier}-errors" class="{element.rootForm.renderingOptions.fieldProperties.errorMsgClassAttribute}" role="alert">
<f:for each="{validationResults.errors}" as="error">
<f:format.htmlspecialchars>{formvh:translateElementError(element: element, error: error)}</f:format.htmlspecialchars>
<br/>
</f:for>
</span>
</f:if>
</f:form.validationResults>
</f:render>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,44 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">
<f:if condition="{element.properties.elementDescription}">
<f:variable name="aria" value="{describedby: '{element.uniqueIdentifier}-desc'}" />
</f:if>
<f:if condition="{validationResults.errors}">
<f:variable name="aria" value="{invalid: 'true', describedby: '{element.uniqueIdentifier}-errors'}" />
</f:if>
<f:render partial="Field/Field" arguments="{element: element}" contentAs="elementContent">
<f:if condition="{element.properties.prependOptionLabel}">
<f:then>
<f:form.select
property="{element.identifier}"
id="{element.uniqueIdentifier}"
class="{element.properties.elementClassAttribute}"
options="{formvh:translateElementProperty(element: element, property: 'options')}"
multiple="multiple"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
prependOptionLabel="{formvh:translateElementProperty(element: element, property: 'prependOptionLabel')}"
prependOptionValue="{formvh:translateElementProperty(element: element, property: 'prependOptionValue')}"
aria="{aria}"
/>
</f:then>
<f:else>
<f:form.select
property="{element.identifier}"
id="{element.uniqueIdentifier}"
class="{element.properties.elementClassAttribute}"
options="{formvh:translateElementProperty(element: element, property: 'options')}"
multiple="multiple"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
aria="{aria}"
/>
</f:else>
</f:if>
</f:render>
</f:form.validationResults>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,24 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">
<f:if condition="{element.properties.elementDescription}">
<f:variable name="aria" value="{describedby: '{element.uniqueIdentifier}-desc'}"/>
</f:if>
<f:if condition="{validationResults.errors}">
<f:variable name="aria" value="{invalid: 'true', describedby: '{element.uniqueIdentifier}-errors'}"/>
</f:if>
<f:render partial="Field/Field" arguments="{element: element}" contentAs="elementContent">
<f:form.textfield
type="number"
property="{element.identifier}"
id="{element.uniqueIdentifier}"
class="{element.properties.elementClassAttribute}"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
aria="{aria}"
/>
</f:render>
</f:form.validationResults>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,10 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{page}">
<f:if condition="{page.label}">
<h2>{formvh:translateElementProperty(element: page, property: 'label')}</h2>
</f:if>
<f:for each="{page.elements}" as="element">
<f:render partial="{element.templateName}" arguments="{element: element}" />
</f:for>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,23 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">
<f:if condition="{element.properties.elementDescription}">
<f:variable name="aria" value="{describedby: '{element.uniqueIdentifier}-desc'}" />
</f:if>
<f:if condition="{validationResults.errors}">
<f:variable name="aria" value="{invalid: 'true', describedby: '{element.uniqueIdentifier}-errors'}" />
</f:if>
<f:render partial="Field/Field" arguments="{element: element}" contentAs="elementContent">
<f:form.password
property="{element.identifier}"
id="{element.uniqueIdentifier}"
class="{element.properties.elementClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
aria="{aria}"
/>
</f:render>
</f:form.validationResults>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,43 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:render partial="Field/Field" arguments="{element: element, renderFieldset: '{element.properties.renderFieldset}', doNotShowLabel: '{element.properties.legendVisuallyHidden}'}" contentAs="elementContent">
<f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">
<f:variable name="errorClass">{f:if(condition: '{validationResults.errors}', then: '{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}')}</f:variable>
<div id="{element.uniqueIdentifier}" class="{errorClass}" role="radiogroup" aria-label="{element.label}">
<f:for each="{element.properties.options}" as="label" key="value" iteration="idIterator">
<f:if condition="{element.properties.elementDescription}">
<f:variable name="aria" value="{describedby: '{element.uniqueIdentifier}-desc'}" />
</f:if>
<f:if condition="{validationResults.errors} && {idIterator.isFirst}">
<f:variable name="aria" value="{invalid: 'true', describedby: '{element.uniqueIdentifier}-errors'}" />
</f:if>
<div class="{element.properties.containerClassAttribute}">
<label class="{element.properties.labelClassAttribute}" for="{element.uniqueIdentifier}-{idIterator.index}">
<f:form.radio
property="{element.identifier}"
id="{element.uniqueIdentifier}-{idIterator.index}"
class="{element.properties.elementClassAttribute}"
value="{value}"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
aria="{aria}"
/>
<span class="{element.properties.labelTextClassAttribute}">{formvh:translateElementProperty(element: element, property: '{0: \'options\', 1: value}')}</span>
</label>
</div>
</f:for>
</div>
<f:if condition="{validationResults.flattenedErrors} && {element.properties.renderFieldset} == '1'">
<span id="{element.uniqueIdentifier}-errors" class="{element.rootForm.renderingOptions.fieldProperties.errorMsgClassAttribute}" role="alert">
<f:for each="{validationResults.errors}" as="error">
<f:format.htmlspecialchars>{formvh:translateElementError(element: element, error: error)}</f:format.htmlspecialchars>
<br/>
</f:for>
</span>
</f:if>
</f:form.validationResults>
</f:render>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,41 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">
<f:if condition="{element.properties.elementDescription}">
<f:variable name="aria" value="{describedby: '{element.uniqueIdentifier}-desc'}"/>
</f:if>
<f:if condition="{validationResults.errors}">
<f:variable name="aria" value="{invalid: 'true', describedby: '{element.uniqueIdentifier}-errors'}"/>
</f:if>
<f:render partial="Field/Field" arguments="{element: element}" contentAs="elementContent">
<f:if condition="{element.properties.prependOptionLabel}">
<f:then>
<f:form.select
property="{element.identifier}"
id="{element.uniqueIdentifier}"
options="{formvh:translateElementProperty(element: element, property: 'options')}"
class="{element.properties.elementClassAttribute}"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
prependOptionLabel="{formvh:translateElementProperty(element: element, property: 'prependOptionLabel')}"
prependOptionValue="{formvh:translateElementProperty(element: element, property: 'prependOptionValue')}"
aria="{aria}"
/>
</f:then>
<f:else>
<f:form.select
property="{element.identifier}"
id="{element.uniqueIdentifier}"
options="{formvh:translateElementProperty(element: element, property: 'options')}"
class="{element.properties.elementClassAttribute}"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
aria="{aria}"
/>
</f:else>
</f:if>
</f:render>
</f:form.validationResults>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,12 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<div class="{element.properties.containerClassAttribute}">
<f:if condition="{element.label}">
<h2>{formvh:translateElementProperty(element: element, property: 'label')}</h2>
</f:if>
<f:if condition="{element.properties.text}">
<div{f:if(condition: element.properties.elementClassAttribute, then: ' class="{element.properties.elementClassAttribute}"')}>{formvh:translateElementProperty(element: element, property: 'text') -> f:sanitize.html() -> f:transform.html()}</div>
</f:if>
</div>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,79 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{page}">
<fieldset>
<f:if condition="{page.label}">
<legend>{formvh:translateElementProperty(element: page, property: 'label')}</legend>
</f:if>
<div class="{page.renderingOptions.listClassAttribute}">
<formvh:renderAllFormValues renderable="{page.rootForm}" as="formValue">
<f:if condition="{formValue.isSection}">
<f:then>
<p><b>{formvh:translateElementProperty(element: formValue.element, property: 'label')}</b></p>
</f:then>
<f:else>
<dl class="{page.renderingOptions.listRowClassAttribute}">
<dt class="{page.renderingOptions.labelWrapperClassAttribute}">{formvh:translateElementProperty(element: formValue.element, property: 'label') -> f:sanitize.html() -> f:transform.html()}</dt>
<dd class="{page.renderingOptions.valueWrapperClassAttribute}">
<f:if condition="{formValue.value}">
<f:then>
<f:if condition="{0: formValue.element.type} == {0: 'ImageUpload'}">
<f:then>
<f:if condition="{formValue.isMultiValue}">
<f:then>
<ul class="image-upload-preview">
<f:for each="{formValue.value}" as="value">
<li class="image-{value.originalResource.extension}">
<f:image image="{value}" maxWidth="{formValue.element.properties.imageMaxWidth}" maxHeight="{formValue.element.properties.imageMaxHeight}" alt="{formvh:translateElementProperty(element: formValue.element, property: 'altText')}"/>
</li>
</f:for>
</ul>
</f:then>
<f:else>
<f:image image="{formValue.value}" maxWidth="{formValue.element.properties.imageMaxWidth}" maxHeight="{formValue.element.properties.imageMaxHeight}" alt="{formvh:translateElementProperty(element: formValue.element, property: 'altText')}"/>
</f:else>
</f:if>
</f:then>
<f:else if="{0: formValue.element.type} == {0: 'FileUpload'}">
<f:if condition="{formValue.isMultiValue}">
<f:then>
<ul class="file-upload-preview">
<f:for each="{formValue.value}" as="value">
<li class="file-{value.originalResource.extension}">{value.originalResource.originalFile.name}</li>
</f:for>
</ul>
</f:then>
<f:else>
<f:format.nl2br>{formValue.processedValue}</f:format.nl2br>
</f:else>
</f:if>
</f:else>
<f:else>
<f:if condition="{formValue.isMultiValue}">
<f:then>
<ul>
<f:for each="{formValue.processedValue}" as="value">
<li>{value}</li>
</f:for>
</ul>
</f:then>
<f:else>
<f:format.nl2br>{formValue.processedValue}</f:format.nl2br>
</f:else>
</f:if>
</f:else>
</f:if>
</f:then>
<f:else>
-
</f:else>
</f:if>
</dd>
</dl>
</f:else>
</f:if>
</formvh:renderAllFormValues>
</div>
</fieldset>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,24 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">
<f:if condition="{element.properties.elementDescription}">
<f:variable name="aria" value="{describedby: '{element.uniqueIdentifier}-desc'}"/>
</f:if>
<f:if condition="{validationResults.errors}">
<f:variable name="aria" value="{invalid: 'true', describedby: '{element.uniqueIdentifier}-errors'}"/>
</f:if>
<f:render partial="Field/Field" arguments="{element: element}" contentAs="elementContent">
<f:form.textfield
type="tel"
property="{element.identifier}"
id="{element.uniqueIdentifier}"
class="{element.properties.elementClassAttribute}"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
aria="{aria}"
/>
</f:render>
</f:form.validationResults>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,23 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">
<f:if condition="{element.properties.elementDescription}">
<f:variable name="aria" value="{describedby: '{element.uniqueIdentifier}-desc'}" />
</f:if>
<f:if condition="{validationResults.errors}">
<f:variable name="aria" value="{invalid: 'true', describedby: '{element.uniqueIdentifier}-errors'}" />
</f:if>
<f:render partial="Field/Field" arguments="{element: element}" contentAs="elementContent">
<f:form.textfield
property="{element.identifier}"
id="{element.uniqueIdentifier}"
class="{element.properties.elementClassAttribute}"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
aria="{aria}"
/>
</f:render>
</f:form.validationResults>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,25 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">
<f:if condition="{element.properties.elementDescription}">
<f:variable name="aria" value="{describedby: '{element.uniqueIdentifier}-desc'}"/>
</f:if>
<f:if condition="{validationResults.errors}">
<f:variable name="aria" value="{invalid: 'true', describedby: '{element.uniqueIdentifier}-errors'}"/>
</f:if>
<f:render partial="Field/Field" arguments="{element: element}" contentAs="elementContent">
<f:form.textarea
property="{element.identifier}"
id="{element.uniqueIdentifier}"
class="{element.properties.elementClassAttribute}"
rows="{element.properties.rows}"
cols="{element.properties.cols}"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
aria="{aria}"
/>
</f:render>
</f:form.validationResults>
</formvh:renderRenderable>
</html>
@@ -0,0 +1,3 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}"> </formvh:renderRenderable>
</html>
@@ -0,0 +1,24 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true">
<formvh:renderRenderable renderable="{element}">
<f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">
<f:if condition="{element.properties.elementDescription}">
<f:variable name="aria" value="{describedby: '{element.uniqueIdentifier}-desc'}"/>
</f:if>
<f:if condition="{validationResults.errors}">
<f:variable name="aria" value="{invalid: 'true', describedby: '{element.uniqueIdentifier}-errors'}"/>
</f:if>
<f:render partial="Field/Field" arguments="{element: element}" contentAs="elementContent">
<f:form.textfield
type="url"
property="{element.identifier}"
id="{element.uniqueIdentifier}"
class="{element.properties.elementClassAttribute}"
errorClass="{element.rootForm.renderingOptions.fieldProperties.errorClassAttribute}"
additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}"
aria="{aria}"
/>
</f:render>
</f:form.validationResults>
</formvh:renderRenderable>
</html>