TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:00 +02:00
commit f9941541b7
1178 changed files with 135377 additions and 0 deletions
@@ -0,0 +1,50 @@
<f:comment>
Styling requires the colpos to be set to the string 'unused'. To preserve type safety in the
controller, the string is only used in the template by setting the below "colpos" variable.
</f:comment>
<f:variable name="colpos" value="{f:if(condition: column.unused, then: 'unused', else: column.columnNumber)}"/>
<f:if condition="{languageColumns}">
<f:then>
<f:comment><!-- Language comparison view --></f:comment>
<f:variable name="columnIdentifier" value="columnIdentifier_language-{column.context.siteLanguage.languageId}_column-{colpos}" />
</f:then>
<f:else>
<f:comment><!-- Grid / Column view --></f:comment>
<f:variable name="columnIdentifier" value="columnIdentifier_column-{colpos}" />
</f:else>
</f:if>
<f:variable name="columnClasses">
t3js-page-column t3-grid-cell t3-page-column
{f:if(condition: column.identifierCleaned, then: 't3-grid-cell-{column.identifierCleaned}')}
{f:if(condition: column.unassigned, then: 't3-grid-cell-unassigned')}
{f:if(condition: '!{column.active} && !{column.unused}', then: 't3-grid-cell-restricted')}
{f:if(condition: '!{column.active} && {hideRestrictedColumns} && !{column.unused}', then: 't3-grid-cell-hidden')}
</f:variable>
<td
valign="top"
colspan="{column.colSpan}"
rowspan="{column.rowSpan}"
data-colpos="{colpos}"
data-language-uid="{column.context.siteLanguage.languageId}"
class="{columnClasses -> f:spaceless()}"
role="group" aria-labelledby="{columnIdentifier}"
>
<f:alias map="{columnHeaderLevel: 2}">
<f:render partial="PageLayout/Grid/ColumnHeader" arguments="{_all}" />
</f:alias>
<f:if condition="{column.active} || {column.unused}">
<div data-colpos="{colpos}" data-language-uid="{column.context.siteLanguage.languageId}" class="t3-page-ce-wrapper">
<f:for each="{column.items}" as="item">
<f:render partial="PageLayout/Record" arguments="{_all}" />
</f:for>
</div>
</f:if>
<f:if condition="{column.unassigned}">
<f:be.infobox
title="{f:translate(domain: 'backend.layout', key: 'emptyColPos')}"
message="{f:translate(domain: 'backend.layout', key: 'emptyColPos.message')}"
state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::WARNING')}"
/>
</f:if>
</td>
@@ -0,0 +1,49 @@
{columnHeaderLevel -> f:or(alternative: 2) -> f:variable(name: 'columnHeaderLevel')}
<div class="t3-page-column-header">
<f:if condition="{column.active}">
<f:then>
<div class="t3-page-column-header-icons">
<f:if condition="{allowEditContent} && {column.editUrl}">
<a
class="btn btn-link"
href="{column.editUrl}"
title="{f:translate(key: 'LLL:EXT:backend/Resources/Private/Language/locallang_layout.xlf:editColumn')}"
>
<core:icon identifier="actions-document-open" />
<span class="visually-hidden">{f:translate(key: 'LLL:EXT:backend/Resources/Private/Language/locallang_layout.xlf:editColumn')}</span>
</a>
</f:if>
</div>
<h{columnHeaderLevel} id="{columnIdentifier}" class="t3-page-column-title">
{column.title}
<f:if condition="{context.pageContext.pageRecord.pid} !== 0 && {column.slideMode.value} !== 'none'">
<f:if condition="!({column.slideMode.value} === 'slide' && {column.items})">
<span class="badge badge-info" title="{f:translate(key: 'LLL:EXT:backend/Resources/Private/Language/locallang_layout.xlf:slideModeInfo.{column.slideMode.value}')}">
<f:switch expression="{column.slideMode.value}">
<f:case value="slide">{core:icon(identifier: 'actions-search', size: 'small')}{core:icon(identifier: 'actions-sort-amount-up', size: 'small')}</f:case>
<f:case value="collect">{core:icon(identifier: 'actions-cart', size: 'small')}{core:icon(identifier: 'actions-sort-amount-down', size: 'small')}</f:case>
<f:case value="collectReverse">{core:icon(identifier: 'actions-cart', size: 'small')}{core:icon(identifier: 'actions-sort-amount-up', size: 'small')}</f:case>
</f:switch>
</span>
</f:if>
</f:if>
</h{columnHeaderLevel}>
</f:then>
<f:else if="{column.unused}">
<span id="{columnIdentifier}"><f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang_layout.xlf:unusedColPos"/></span>
</f:else>
<f:else if="{column.unassigned}">
<span id="{columnIdentifier}">{column.titleUnassigned}</span>
</f:else>
<f:else>
<span id="{columnIdentifier}">{column.titleInaccessible}</span>
</f:else>
</f:if>
</div>
<f:if condition="{allowEditContent} && {column.contentEditable} && {column.context.allowNewContent} && {column.active}">
<div class="t3-page-ce t3js-page-ce" data-page="{column.context.pageId}">
<f:render partial="PageLayout/ActionControls" arguments="{column: column, allowEditContent: allowEditContent, url: column.newContentUrl}" />
<div class="t3-page-ce-dropzone t3js-page-ce-dropzone-available" hidden></div>
</div>
</f:if>