Skip to content
Snippets Groups Projects
Commit f1a7c540 authored by Claus Due's avatar Claus Due Committed by Georg Ringer
Browse files

[BUGFIX] Correct decision about new content button

This patch fixes an issue with mod.web_layout.defLangBinding = 1
which when enabled would cause the page layout module to
render the "new content" buttons when this was not desired.

The fixes consist of:

* A change to make sure that Fluid variable {column} contains
  the right language ID in the PageLayoutContext associated
  with the column; by re-assigning {column} within the loop
  over {languageColumns} in LanguageColumns.html
* Re-overwriting the {column} variable after the loop to ensure
  it holds the default language column which holds the default
  language column's content records that are iterated over.
* Overwriting the {column} variable within the loop that renders
  each content record to ensure it holds the correct language ID
  in the column's PageLayoutContext.
* Assigning the right PageLayoutContext to translated versions
  of content records to ensure that the "new content" button
  below each translated content element points to the right
  language UID.
* A visual alignment fix setting valign="top" on TD elements
  to ensure the alignment of each content record and the
  column header, when the "new content" button is not shown.

Resolves: #94047
Releases: master, 10.4
Change-Id: Ia169f9c649db8df9b1ec11aeeb23cebed27308e0
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/70718


Tested-by: default avatarcore-ci <typo3@b13.com>
Tested-by: default avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: default avatarOliver Bartsch <bo@cedev.de>
Tested-by: default avatarGeorg Ringer <georg.ringer@gmail.com>
Reviewed-by: default avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: default avatarOliver Bartsch <bo@cedev.de>
Reviewed-by: default avatarGeorg Ringer <georg.ringer@gmail.com>
parent 07aff9ef
Branches
Tags
No related merge requests found
......@@ -168,7 +168,7 @@ class BackendLayoutRenderer
// check if translation exists
foreach ($translatedRows as $translation) {
if ($translation['l18n_parent'] === $item->getRecord()['uid']) {
$translatedItem = GeneralUtility::makeInstance(GridColumnItem::class, $this->context, $column, $translation);
$translatedItem = GeneralUtility::makeInstance(GridColumnItem::class, $localizedContext, $column, $translation);
$item->addTranslation($localizedLanguageId, $translatedItem);
}
}
......
......@@ -65,22 +65,25 @@
<f:then>
<f:variable name="grid" value="{languageColumns.0.grid}" />
<f:for each="{context.drawingConfiguration.activeColumns}" as="columnNumber">
<f:variable name="column" value="{be:languageColumn(languageColumn: languageColumns.0, columnNumber: columnNumber)}" />
<tr>
<f:for each="{languageColumns}" as="languageColumn">
<td data-colpos="{column.columnNumber}">
<f:variable name="column" value="{be:languageColumn(languageColumn: languageColumn, columnNumber: columnNumber)}" />
<td data-colpos="{column.columnNumber}" valign="top">
<f:render partial="PageLayout/Grid/ColumnHeader" arguments="{_all}" />
</td>
</f:for>
</tr>
<f:variable name="column" value="{be:languageColumn(languageColumn: languageColumns.0, columnNumber: columnNumber)}" />
<f:for each="{column.items}" as="item" iteration="itemIterator">
<tr>
<td class="t3-grid-cell" data-colpos="{column.columnNumber}">
<td class="t3-grid-cell" valign="top" data-colpos="{column.columnNumber}">
<f:variable name="column" value="{be:languageColumn(languageColumn: languageColumns.0, columnNumber: columnNumber)}" />
<f:render partial="PageLayout/Record" arguments="{_all}" />
</td>
<f:for each="{languageColumns}" as="languageColumn">
<f:if condition="{languageColumn.context.siteLanguage.languageId} > 0">
<td class="t3-grid-cell" data-colpos="{column.columnNumber}">
<f:variable name="column" value="{be:languageColumn(languageColumn: languageColumn, columnNumber: columnNumber)}" />
<td class="t3-grid-cell" valign="top" data-colpos="{column.columnNumber}">
<f:variable name="languageId" value="{languageColumn.context.siteLanguage.languageId}" />
<f:if condition="{languageColumn.translationData.mode} == 'connected'">
<f:then>
......
......@@ -15,7 +15,7 @@
</f:render>
</div>
</div>
<f:if condition="{allowEditContent} && {item.column.contentEditable} && {item.column.context.allowNewContent} && {column.active}">
<f:if condition="{allowEditContent} && {item.column.contentEditable} && {column.context.allowNewContent} && {column.active}">
<div class="t3js-page-new-ce t3-page-ce-wrapper-new-ce" id="colpos-{item.column.columnNumber}-page-{item.context.pageId}-{item.column.uniqueId}">
<a href="{item.newContentAfterUrl}" title="{item.newContentAfterLinkTitle}" data-title="{item.newContentAfterLinkTitle}"
class="btn btn-default btn-sm {f:if(condition:item.column.context.drawingConfiguration.showNewContentWizard, then: 't3js-toggle-new-content-element-wizard disabled')}">
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment