TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,195 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
xmlns:i="http://typo3.org/ns/TYPO3/CMS/Install/ViewHelpers"
|
||||
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true"
|
||||
>
|
||||
|
||||
<div class="panel panel-default searchhit">
|
||||
<h2 class="panel-heading" role="tab">
|
||||
<div class="panel-heading-row">
|
||||
<button
|
||||
class="panel-button collapsed"
|
||||
type="button"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-target="#collapse-{extensionKey}"
|
||||
aria-controls="collapse-{extensionKey}"
|
||||
aria-expanded="false"
|
||||
id="heading-{extensionKey}"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<strong>{extensionKey}</strong>
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</h2>
|
||||
<div id="collapse-{extensionKey}" class="panel-collapse collapse search-item" role="tabpanel" aria-labelledby="heading-{extensionKey}">
|
||||
<div class="panel-body">
|
||||
<div role="tabpanel">
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<f:for each="{extensionData}" as="category" key="categoryName" iteration="iteration">
|
||||
<f:if condition="{categoryName}">
|
||||
<li role="presentation" class="nav-item">
|
||||
<button
|
||||
type="button"
|
||||
class="nav-link{f:if(condition:'{iteration.isFirst}', then:' active')}"
|
||||
data-typo3-tab="#{i:format.noSpace(value:'category-{extensionKey}-{categoryName}')}"
|
||||
aria-controls="category-{extensionKey}-{categoryName}"
|
||||
role="tab"
|
||||
>
|
||||
{category.label ? category.label : categoryName}
|
||||
</button>
|
||||
</li>
|
||||
</f:if>
|
||||
</f:for>
|
||||
</ul>
|
||||
|
||||
<form action="#" name="configurationform" autocomplete="off" class="t3js-extensionConfiguration-form extensionConfiguration-form" data-extension-key="{extensionKey}" spellcheck="false">
|
||||
|
||||
<div class="tab-content">
|
||||
<f:for each="{extensionData}" as="subcategories" key="categoryName" iteration="iterator">
|
||||
<div role="tabpanel" class="tab-pane {f:if(condition:'{iterator.isFirst}', then:'active')}" id="{i:format.noSpace(value:'category-{extensionKey}-{categoryName}')}">
|
||||
<f:for each="{subcategories.items}" as="subcategory">
|
||||
<div class="form-section">
|
||||
<f:for each="{subcategory.items}" as="configurationItem" iteration="itemIterator">
|
||||
<f:if condition="{itemIterator.isFirst}">
|
||||
<h2 class="h4 form-section-headline">{configurationItem.subcat_label}</h2>
|
||||
</f:if>
|
||||
<div class="form-group form-group-dashed">
|
||||
<label class="form-label" for="em-{extensionKey}-{configurationItem.name}">
|
||||
<span>{configurationItem.label}</span> <code>({categoryName}.{configurationItem.name} [{configurationItem.type}])</code>
|
||||
</label>
|
||||
<f:if condition="{configurationItem.description}">
|
||||
<div class="form-description">{configurationItem.description -> f:format.nl2br()}</div>
|
||||
</f:if>
|
||||
<f:if condition="{configurationItem.typeHint}">
|
||||
<div class="form-description">{configurationItem.typeHint}</div>
|
||||
</f:if>
|
||||
<div class="form-control-wrap">
|
||||
<f:switch expression="{configurationItem.type}">
|
||||
|
||||
<f:case value="int+">
|
||||
<input
|
||||
class="form-control"
|
||||
id="em-{extensionKey}-{configurationItem.name}"
|
||||
type="number"
|
||||
name="{configurationItem.name}"
|
||||
value="{configurationItem.value}"
|
||||
{f:if(condition: '{configurationItem.typeIntPlusMin} || {configurationItem.typeIntPlusMin == 0}', then: 'min="{configurationItem.typeIntPlusMin}"')}
|
||||
{f:if(condition: configurationItem.typeIntPlusMax, then: 'max="{configurationItem.typeIntPlusMax}"')}
|
||||
{f:if(condition: '!{isWritable}', then: 'disabled')}
|
||||
>
|
||||
</f:case>
|
||||
<f:case value="int">
|
||||
<input
|
||||
class="form-control"
|
||||
id="em-{extensionKey}-{configurationItem.name}"
|
||||
type="number"
|
||||
name="{configurationItem.name}"
|
||||
value="{configurationItem.value}"
|
||||
{f:if(condition: '{configurationItem.typeIntMin} || {configurationItem.typeIntMin == 0}', then: 'min="{configurationItem.typeIntMin}"')}
|
||||
{f:if(condition: '{configurationItem.typeIntMax} || {configurationItem.typeIntMax == 0}', then: 'max="{configurationItem.typeIntMax}"')}
|
||||
{f:if(condition: '!{isWritable}', then: 'disabled')}
|
||||
>
|
||||
</f:case>
|
||||
<f:case value="string">
|
||||
<input
|
||||
class="form-control"
|
||||
id="em-{extensionKey}-{configurationItem.name}"
|
||||
type="text"
|
||||
name="{configurationItem.name}"
|
||||
value="{configurationItem.value}"
|
||||
{f:if(condition: '!{isWritable}', then: 'disabled')}
|
||||
/>
|
||||
</f:case>
|
||||
<f:case value="color">
|
||||
<typo3-backend-color-picker>
|
||||
<input
|
||||
class="form-control"
|
||||
type="text"
|
||||
id="em-{extensionKey}-{configurationItem.name}"
|
||||
name="{configurationItem.name}"
|
||||
value="{configurationItem.value}"
|
||||
{f:if(condition: '!{isWritable}', then: 'disabled')}
|
||||
/>
|
||||
</typo3-backend-color-picker>
|
||||
</f:case>
|
||||
<f:case value="wrap">
|
||||
<input
|
||||
class="form-control t3js-emconf-wrap"
|
||||
type="text"
|
||||
id="em-{extensionKey}-{configurationItem.name}"
|
||||
name="{configurationItem.name}"
|
||||
value="{configurationItem.value}"
|
||||
{f:if(condition: '!{isWritable}', then: 'disabled')}
|
||||
/>
|
||||
</f:case>
|
||||
<f:case value="offset">
|
||||
<input
|
||||
type="text"
|
||||
class="form-control t3js-emconf-offset"
|
||||
id="em-{extensionKey}-{configurationItem.name}"
|
||||
name="{configurationItem.name}"
|
||||
value="{configurationItem.value}"
|
||||
{f:if(condition: '!{isWritable}', then: 'disabled')}
|
||||
/>
|
||||
</f:case>
|
||||
<f:case value="options">
|
||||
<select
|
||||
class="form-select"
|
||||
id="em-{extensionKey}-{configurationItem.name}"
|
||||
name="{configurationItem.name}"
|
||||
{f:if(condition: '!{isWritable}', then: 'disabled')}
|
||||
>
|
||||
<f:for each="{configurationItem.labelValueArray}" as="labelAndValue">
|
||||
<option value="{labelAndValue.value}" {f:if(condition: '{labelAndValue.value} == {configurationItem.value}', then: 'selected')}>
|
||||
{labelAndValue.label}
|
||||
</option>
|
||||
</f:for>
|
||||
</select>
|
||||
</f:case>
|
||||
<f:case value="boolean">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="hidden"
|
||||
name="{configurationItem.name}"
|
||||
value="0"
|
||||
/>
|
||||
<input
|
||||
type="checkbox"
|
||||
name="{configurationItem.name}"
|
||||
id="em-{extensionKey}-{configurationItem.name}"
|
||||
class="form-check-input"
|
||||
value="{configurationItem.trueValue}"
|
||||
{f:if(condition: '{configurationItem.value} == {configurationItem.trueValue}', then: 'checked')}
|
||||
{f:if(condition: '!{isWritable}', then: 'disabled')}
|
||||
/>
|
||||
</div>
|
||||
</f:case>
|
||||
<f:case value="user">
|
||||
{configurationItem.html -> f:format.raw()}
|
||||
</f:case>
|
||||
|
||||
</f:switch>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</f:for>
|
||||
</div>
|
||||
</f:for>
|
||||
</div>
|
||||
</f:for>
|
||||
</div>
|
||||
|
||||
<f:if condition="{isWritable}">
|
||||
<button type="submit" class="btn btn-primary" name="save">Save "{extensionKey}" configuration</button>
|
||||
</f:if>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user