TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:41 +02:00
commit 621587f02d
50 changed files with 4650 additions and 0 deletions
@@ -0,0 +1,107 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<f:layout name="Module"/>
<f:section name="Content">
<f:asset.module identifier="@typo3/backend/context-menu.js"/>
<f:comment><!-- Heading --></f:comment>
<h1>
<f:if condition="{templateTitle}">
<f:then>
<f:translate
key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_active.xlf:editAction.submodule.titleWithTemplate"
arguments="{
0: '{templateTitle}'
}"
/>
</f:then>
<f:else>
<f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_active.xlf:editAction.submodule.title" />
</f:else>
</f:if>
</h1>
<f:comment><!-- Show "no template on this page" infobox, or render edit options --></f:comment>
<f:if condition="!{hasTemplate}">
<f:then>
<f:be.infobox
title="{f:translate(key: 'LLL:EXT:tstemplate/Resources/Private/Language/locallang_active.xlf:editAction.infobox.title.noTypoScriptTemplateOnCurrentPage')}"
message="{f:translate(key: 'LLL:EXT:tstemplate/Resources/Private/Language/locallang_active.xlf:editAction.infobox.message.noTypoScriptTemplateOnCurrentPage')}"
state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::INFO')}"
/>
</f:then>
<f:else>
<f:comment><!-- Edit property --></f:comment>
<form action="{f:be.uri(route: 'typoscript_active.update', parameters: '{id: pageUid}')}" method="post">
<input type="hidden" name="currentObjectPath" value="{currentObjectPath}" />
<input type="hidden" name="pageUid" value="{pageUid}" />
<input type="hidden" name="type" value="{type}" />
<h2><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_active.xlf:editAction.editProperty.headline" /></h2>
<div class="row row-cols-auto align-items-end g-1">
<div class="col mb-4">
<label class="visually-hidden">{currentObjectPath} =</label>
<div class="input-group">
<div class="input-group-text">{currentObjectPath} =</div>
<input class="form-control" type="text" name="value" value="{currentValue}" />
</div>
</div>
<div class="col mb-4">
<input
type="submit"
name="updateValue"
value="{f:translate(key:'LLL:EXT:tstemplate/Resources/Private/Language/locallang_active.xlf:editAction.editProperty.btn')}"
class="btn btn-default"
/>
</div>
</div>
<h2><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_active.xlf:editAction.addProperty.headline" /></h2>
<div class="row row-cols-auto align-items-end g-1 mb-8">
<div class="col mb-4">
<label class="visually-hidden">{currentObjectPath}.</label>
<div class="input-group">
<div class="input-group-text">{currentObjectPath}.</div>
<input name="childName" type="text" class="form-control" />
</div>
</div>
<div class="col mb-4">
<div class="input-group">
<div class="input-group-text">=</div>
<input type="text" name="childValue" class="form-control" />
</div>
</div>
<div class="col mb-4">
<input
type="submit"
name="addChild"
value="{f:translate(key:'LLL:EXT:tstemplate/Resources/Private/Language/locallang_active.xlf:editAction.addProperty.btn')}"
class="btn btn-default"
/>
</div>
</div>
<h2><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_active.xlf:editAction.clearObject.headline" /></h2>
<p>
<f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_active.xlf:editAction.clearObject.infotextWithProperty" />
<code>{currentObjectPath} ></code>
</p>
<input
type="submit"
name="clear"
value="{f:translate(key:'LLL:EXT:tstemplate/Resources/Private/Language/locallang_active.xlf:editAction.clearObject.btn')}"
class="btn btn-default"
/>
</form>
</f:else>
</f:if>
</f:section>
</html>
@@ -0,0 +1,116 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<f:layout name="Module"/>
<f:section name="Before">
<f:asset.module identifier="@typo3/backend/context-menu.js"/>
<f:asset.module identifier="@typo3/backend/element/immediate-action-element.js"/>
<f:asset.module identifier="@typo3/backend/tree/tree-node-toggle.js"/>
<f:asset.module identifier="@typo3/backend/utility/collapse-state-persister.js"/>
<f:asset.module identifier="@typo3/backend/utility/collapse-state-search.js"/>
<f:variable name="args" value="{0: 'web', 1: pageUid}" />
<typo3-immediate-action
action="TYPO3.Backend.Storage.ModuleStateStorage.update"
args="{args -> f:format.json() -> f:format.htmlspecialchars()}"
></typo3-immediate-action>
</f:section>
<f:section name="Content">
<h1>
<f:if condition="{templateTitle}">
<f:then>
<f:translate
key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_active.xlf:submodule.titleWithRecord"
arguments="{
0: '{templateTitle}'
}"
/>
</f:then>
<f:else>
<f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_active.xlf:submodule.title" />
</f:else>
</f:if>
</h1>
<p><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_active.xlf:submodule.description" /></p>
<f:comment><!-- General options --></f:comment>
<f:if condition="{constantAst.children} || {setupAst.children}">
<f:render
partial="ActiveOptions"
arguments="{
allTemplatesOnPage: allTemplatesOnPage,
pageUid: pageUid,
selectedTemplateUid: selectedTemplateUid,
displayConstantSubstitutions: displayConstantSubstitutions,
displayComments: displayComments,
sortAlphabetically: sortAlphabetically
}"
/>
</f:if>
<f:comment><!-- Constants: Conditions and tree --></f:comment>
<f:if condition="{constantAst.children}">
<h2><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_active.xlf:sectionHeadline.constants" /></h2>
<div class="panel-group">
<f:render
partial="ActiveConditions"
arguments="{
pageUid: pageUid,
type: 'constant',
conditions: constantConditions,
conditionActiveCount: constantConditionsActiveCount
}"
/>
<f:render
partial="ActiveTreePanel"
arguments="{
type: 'constant',
tree: constantAst,
pageUid: pageUid,
displayComments: displayComments
}"
/>
</div>
</f:if>
<f:comment><!-- Setup: Conditions and tree --></f:comment>
<f:if condition="{setupAst.children}">
<h2><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_active.xlf:sectionHeadline.setup" /></h2>
<div class="panel-group">
<f:render
partial="ActiveConditions"
arguments="{
pageUid: pageUid,
type: 'setup',
conditions: setupConditions,
conditionActiveCount: setupConditionsActiveCount,
displayConstantSubstitutions: displayConstantSubstitutions
}"
/>
<f:render
partial="ActiveTreePanel"
arguments="{
type: 'setup',
tree: setupAst,
pageUid: pageUid,
displayConstantSubstitutions: displayConstantSubstitutions,
displayComments: displayComments
}"
/>
</div>
</f:if>
<f:if condition="!{constantAst.children} && !{setupAst.children}">
<f:be.infobox
message="{f:translate(key: 'LLL:EXT:tstemplate/Resources/Private/Language/locallang_active.xlf:infobox.message.noTypoScriptFound')}"
state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::INFO')}"
/>
</f:if>
</f:section>
</html>
@@ -0,0 +1,104 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<f:layout name="Module"/>
<f:section name="Before">
<f:asset.module identifier="@typo3/backend/context-menu.js"/>
<f:asset.module identifier="@typo3/backend/element/immediate-action-element.js"/>
<f:asset.module identifier="@typo3/tstemplate/template-analyzer.js"/>
<f:variable name="args" value="{0: 'web', 1: pageUid}" />
<typo3-immediate-action
action="TYPO3.Backend.Storage.ModuleStateStorage.update"
args="{args -> f:format.json() -> f:format.htmlspecialchars()}"
></typo3-immediate-action>
</f:section>
<f:section name="Content">
<h1>
<f:if condition="{templateTitle}">
<f:then>
<f:translate
key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:submodule.titleWithRecord"
arguments="{
0: '{templateTitle}'
}"
/>
</f:then>
<f:else>
<f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:submodule.title" />
</f:else>
</f:if>
</h1>
<p><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:submodule.description" /></p>
<f:comment><!-- General options --></f:comment>
<f:render
partial="AnalyzerOptions"
arguments="{
allTemplatesOnPage: allTemplatesOnPage,
pageUid: pageUid,
selectedTemplateUid: selectedTemplateUid
}"
/>
<f:comment><!-- Constants: Syntax errors, source and tree --></f:comment>
<f:if condition="{constantIncludeTree.children}">
<h2><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:sectionHeadline.constants" /></h2>
<div class="panel-group">
<f:render
partial="AnalyzerSyntaxErrors"
arguments="{
type: 'constants',
pageUid: pageUid,
errors: constantErrors,
errorCount: constantErrorCount
}"
/>
<f:render
partial="AnalyzerTreePanel"
arguments="{
type: 'constants',
tree: constantIncludeTree,
pageUid: pageUid
}"
/>
</div>
</f:if>
<f:comment><!-- Setup: Syntax errors, source and tree --></f:comment>
<f:if condition="{setupIncludeTree.children}">
<h2><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:sectionHeadline.setup" /></h2>
<div class="panel-group">
<f:render
partial="AnalyzerSyntaxErrors"
arguments="{
type: 'setup',
pageUid: pageUid,
errors: setupErrors,
errorCount: setupErrorCount
}"
/>
<f:render
partial="AnalyzerTreePanel"
arguments="{
type: 'setup',
tree: setupIncludeTree,
pageUid: pageUid
}"
/>
</div>
</f:if>
<f:if condition="!{constantIncludeTree.children} && !{setupIncludeTree.children}">
<f:be.infobox
message="{f:translate(key: 'LLL:EXT:tstemplate/Resources/Private/Language/locallang_analyzer.xlf:infobox.message.noTypoScriptFound')}"
state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::INFO')}"
/>
</f:if>
</f:section>
</html>
@@ -0,0 +1,86 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<f:layout name="Module"/>
<f:section name="Before">
<f:asset.module identifier="@typo3/backend/context-menu.js"/>
<f:asset.module identifier="@typo3/backend/element/immediate-action-element.js"/>
<f:asset.module identifier="@typo3/backend/utility/collapse-state-persister.js"/>
<f:asset.module identifier="@typo3/tstemplate/constant-editor.js"/>
<f:variable name="args" value="{0: 'web', 1: pageUid}" />
<typo3-immediate-action
action="TYPO3.Backend.Storage.ModuleStateStorage.update"
args="{args -> f:format.json() -> f:format.htmlspecialchars()}"
></typo3-immediate-action>
</f:section>
<f:section name="Content">
<h1>
<f:if condition="{templateTitle}">
<f:then>
<f:translate
key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_ceditor.xlf:submodule.titleWithRecord"
arguments="{
0: '{templateTitle}'
}"
/>
</f:then>
<f:else>
<f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_ceditor.xlf:submodule.title" />
</f:else>
</f:if>
</h1>
<f:if condition="{selectedTemplateUid} > 0">
<p><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_ceditor.xlf:submodule.description" /></p>
</f:if>
<f:comment><!-- Options --></f:comment>
<f:render
partial="ConstantEditorOptions"
arguments="{
allTemplatesOnPage: allTemplatesOnPage,
pageUid: pageUid,
selectedTemplateUid: selectedTemplateUid,
relevantCategories: relevantCategories,
selectedCategory: selectedCategory
}"
/>
<f:if condition="{selectedTemplateUid} > 0">
<f:comment><!-- Main form --></f:comment>
<f:if condition="!{relevantCategories}">
<f:then>
<f:be.infobox message="{f:translate(key:'LLL:EXT:tstemplate/Resources/Private/Language/locallang_ceditor.xlf:infobox.message.noConstants')}" state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::INFO')}" />
</f:then>
<f:else>
<f:render partial="ConstantEditorFields" arguments="{_all}" />
</f:else>
</f:if>
</f:if>
<f:if condition="{selectedTemplateUid} == -1">
<f:be.infobox
state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::INFO')}"
title="{f:translate(key: 'LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:noConstantsButSiteSettings.title')}"
>
<p>
<f:translate
key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:noConstantsButSiteSettings.message"
arguments="{
0: '{templateRecord.site.identifier}'
}"
/>
</p>
<f:variable name="returnUrl">{f:be.uri(route: 'web_typoscript_constanteditor', parameters: {id: pageUid})}</f:variable>
<f:be.link route="site_configuration.editSettings" parameters="{site: templateRecord.site.identifier, returnUrl: returnUrl}" class="btn btn-default">
<f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:btn.editSiteSettings"/>
</f:be.link>
</f:be.infobox>
</f:if>
</f:section>
</html>
@@ -0,0 +1,24 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<f:layout name="Module"/>
<f:section name="Content">
<h1><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_ceditor.xlf:submodule.title" /></h1>
<p><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_ceditor.xlf:submodule.description" /></p>
<f:render
partial="NoRecordFound"
arguments="{
pageUid: pageUid,
previousPage: previousPage,
moduleIdentifier: moduleIdentifier
}"
/>
</f:section>
</html>
@@ -0,0 +1,189 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
xmlns:be="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<f:layout name="Module"/>
<f:section name="Before">
<f:asset.module identifier="@typo3/backend/context-menu.js"/>
<f:asset.module identifier="@typo3/backend/element/immediate-action-element.js"/>
<f:asset.module identifier="@typo3/tstemplate/information-module.js"/>
<f:variable name="args" value="{0: 'web', 1: pageUid}" />
<typo3-immediate-action
action="TYPO3.Backend.Storage.ModuleStateStorage.update"
args="{args -> f:format.json() -> f:format.htmlspecialchars()}"
></typo3-immediate-action>
</f:section>
<f:section name="Content">
<h1>
<f:if condition="{templateRecord.title}">
<f:then>
<f:translate
key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:submodule.titleWithRecord"
arguments="{
0: '{templateRecord.title}'
}"
/>
</f:then>
<f:else>
<f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:submodule.title" />
</f:else>
</f:if>
</h1>
<p><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:submodule.description" /></p>
<f:if condition="{f:count(subject: allTemplatesOnPage)} > 1">
<div class="form-row">
<div class="form-group">
<form action="{f:be.uri(route: 'web_typoscript_infomodify', parameters: '{id: pageUid}')}" method="post">
<label class="form-label" for="selectedTemplate">
<f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:options.selectedRecord" />
</label>
<select
name="selectedTemplate"
id="selectedTemplate"
class="form-select"
data-global-event="change"
data-action-navigate="$data=~s/$value/"
data-action-submit="$form"
>
<f:for each="{allTemplatesOnPage}" as="template">
<option
value="{template.uid}"
{f:if(condition:'{templateRecord.uid} == {template.uid}', then:'selected="selected"')}
>
<f:if condition="{template.type} == 'sys_template'">
{template.title}
</f:if>
<f:if condition="{template.type} == 'site'">
{template.site.configuration.websiteTitle}
</f:if>
</option>
</f:for>
</select>
</form>
</div>
</div>
</f:if>
<f:if condition="{templateRecord.type} == 'site'">
<f:be.infobox
state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::INFO')}"
title="{f:translate(key: 'LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:infoTypoScriptRecordFromSite.title')}"
>
<p>
<f:translate
key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:infoTypoScriptRecordFromSite.message"
arguments="{
0: '{templateRecord.site.identifier}'
}"
/>
</p>
<f:variable name="returnUrl">{f:be.uri(route: 'web_typoscript_infomodify', parameters: {id: pageUid})}</f:variable>
<f:be.link route="site_configuration.edit" parameters="{site: templateRecord.site.identifier, returnUrl: returnUrl}" class="btn btn-default">
<f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:btn.editSiteConfiguration"/>
</f:be.link>
<f:be.link route="site_configuration.editSettings" parameters="{site: templateRecord.site.identifier, returnUrl: returnUrl}" class="btn btn-default">
<f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:btn.editSiteSettings"/>
</f:be.link>
</f:be.infobox>
</f:if>
<div class="table-fit">
<table class="table table-striped table-hover">
<tbody>
<tr>
<td class="text-nowrap">
<f:if condition="{templateRecord.type} == 'sys_template'">
<be:link.editRecord
table="sys_template"
uid="{templateRecord.uid}"
fields="title"
class="btn d-block text-start btn-default"
>
<core:icon identifier="actions-open" /> <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:table.column.title" />
</be:link.editRecord>
</f:if>
<f:if condition="{templateRecord.type} == 'site'">
<f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:table.column.title" />
</f:if>
</td>
<td width="90%">{templateRecord.title}</td>
</tr>
<tr>
<td class="text-nowrap">
<f:if condition="{templateRecord.type} == 'sys_template'">
<be:link.editRecord
table="sys_template"
uid="{templateRecord.uid}"
fields="description"
class="btn d-block text-start btn-default"
>
<core:icon identifier="actions-open" /> <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:table.column.description" />
</be:link.editRecord>
</f:if>
<f:if condition="{templateRecord.type} == 'site'">
<f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:table.column.description" />
</f:if>
</td>
<td width="90%">{templateRecord.description}</td>
</tr>
<tr>
<td class="text-nowrap">
<f:if condition="{templateRecord.type} == 'sys_template'">
<be:link.editRecord
table="sys_template"
uid="{templateRecord.uid}"
fields="constants"
class="btn d-block text-start btn-default"
>
<core:icon identifier="actions-open" /> <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:table.column.constants" />
</be:link.editRecord>
</f:if>
<f:if condition="{templateRecord.type} == 'site'">
<f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:table.column.constants" />
</f:if>
</td>
<td width="90%"><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:table.column.lines" arguments="{0: numberOfConstantsLines}" /></td>
</tr>
<tr>
<td class="text-nowrap">
<f:if condition="{templateRecord.type} == 'sys_template'">
<be:link.editRecord
table="sys_template"
uid="{templateRecord.uid}"
fields="config"
class="btn d-block text-start btn-default"
>
<core:icon identifier="actions-open" /> <f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:table.column.setup" />
</be:link.editRecord>
</f:if>
<f:if condition="{templateRecord.type} == 'site'">
<f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:table.column.setup" />
</f:if>
</td>
<td width="90%"><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:table.column.lines" arguments="{0: numberOfSetupLines}" /></td>
</tr>
</tbody>
</table>
</div>
<f:if condition="{templateRecord.type} == 'sys_template'">
<be:link.editRecord
table="sys_template"
uid="{templateRecord.uid}"
class="btn btn-default"
>
<core:icon identifier="actions-document-open" />
<f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:btn.editTypoScriptRecord"/>
</be:link.editRecord>
</f:if>
</f:section>
</html>
@@ -0,0 +1,24 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<f:layout name="Module"/>
<f:section name="Content">
<h1><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:submodule.title" /></h1>
<p><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_info.xlf:submodule.description" /></p>
<f:render
partial="NoRecordFound"
arguments="{
pageUid: pageUid,
previousPage: previousPage,
moduleIdentifier: moduleIdentifier
}"
/>
</f:section>
</html>
@@ -0,0 +1,137 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<f:layout name="Module"/>
<f:section name="Content">
<f:asset.module identifier="@typo3/backend/context-menu.js"/>
<f:asset.module identifier="@typo3/backend/element/immediate-action-element.js"/>
<h1>
<f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_overview.xlf:typoscriptRecords.title" />
</h1>
<p><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_overview.xlf:typoscriptRecords.description" /></p>
<f:if condition="{pageTree}">
<f:then>
<div class="table-fit">
<table class="table table-striped table-hover" id="ts-overview">
<thead>
<tr>
<th class="nowrap align-top"><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_overview.xlf:typoscriptRecords.table.column.pageTitle" /></th>
<th class="nowrap align-top"><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_overview.xlf:typoscriptRecords.table.column.typoscriptRecords" /></th>
<th class="nowrap align-top"><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_overview.xlf:typoscriptRecords.table.column.site" /></th>
<th class="nowrap align-top"><f:translate key="LLL:EXT:tstemplate/Resources/Private/Language/locallang_overview.xlf:typoscriptRecords.table.column.root" /></th>
</tr>
</thead>
<tbody>
<f:for each="{pageTree}" as="page">
<f:render
section="TableRow"
arguments="{
page: page,
level: 0
}"
/>
</f:for>
</tbody>
</table>
</div>
</f:then>
<f:else>
<f:be.infobox
message="{f:translate(key: 'LLL:EXT:tstemplate/Resources/Private/Language/locallang_overview.xlf:typoscriptRecords.noRecordsFound')}"
state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::INFO')}"
/>
</f:else>
</f:if>
</f:section>
<f:section name="TableRow">
<f:variable name="maxCharacters" value="30" />
<tr class="{f:if(condition: page.hidden, then: 'inactive')}">
<td class="align-top nowrap">
<span title="id={page.uid}" style="margin-left: {level * 20}px">
<core:IconForRecord table="pages" row="{page}" />
{page.title -> f:format.crop(maxCharacters: maxCharacters)}
</span>
</td>
<td class="align-top">
<f:for each="{page._templates}" as="templateFile" iteration="templateIterator">
<div class="{f:if(condition: '{templateIterator.isLast}', then: '', else: 'mb-2')}">
<f:if condition="{templateFile.type} == 'sys_template'">
<core:IconForRecord table="sys_template" row="{templateFile}" />
<a
href="{f:be.uri(route: 'web_typoscript_infomodify', parameters:'{id: templateFile.pid, selectedTemplate: templateFile.uid}')}"
title="ID: {templateFile.uid}"
>
{templateFile.title -> f:format.crop(maxCharacters: maxCharacters)}
</a>
</f:if>
<f:if condition="{templateFile.type} == 'site'">
<span title="{templateFile.title} (site:{templateFile.site.identifier})">
<core:icon identifier="mimetypes-x-content-template" overlay="mimetypes-x-content-domain" size="small"/>
<f:if condition="{templateFile.title}">
<f:then>
{templateFile.title -> f:format.crop(maxCharacters: maxCharacters)}
</f:then>
<f:else>
{templateFile.site.identifier -> f:format.crop(maxCharacters: maxCharacters)}
</f:else>
</f:if>
</span>
</f:if>
</div>
</f:for>
</td>
<td class="align-top">
<f:for each="{page._templates}" as="templateFile" iteration="templateIterator">
<div class="{f:if(condition: '{templateIterator.isLast}', then: '', else: 'mb-2')}">
<f:if condition="{templateFile.type} == 'site'">
<f:then>
<core:icon identifier="status-status-checked"/>
</f:then>
<f:else>
&nbsp;
</f:else>
</f:if>
</div>
</f:for>
</td>
<td class="align-top">
<f:for each="{page._templates}" as="templateFile" iteration="templateIterator">
<div class="{f:if(condition: '{templateIterator.isLast}', then: '', else: 'mb-2')}">
<f:if condition="{templateFile.root}">
<f:then>
<core:icon identifier="status-status-checked"/>
</f:then>
<f:else>
&nbsp;
</f:else>
</f:if>
</div>
</f:for>
</td>
</tr>
<f:comment><!-- Subpages --></f:comment>
<f:if condition="{page._nodes -> f:count()}">
<f:for each="{page._nodes}" as="page">
<f:render
section="TableRow"
arguments="{
page: page,
level: '{level + 1}'
}"
/>
</f:for>
</f:if>
</f:section>
</html>