Bug #89192

TypoScript multi-line value syntax in is broken in Backend Layout

Added by Sebastian Michaelsen 27 days ago. Updated 26 days ago.

Status:
Accepted
Priority:
Should have
Assignee:
-
Category:
TypoScript
Target version:
-
Start date:
2019-09-17
Due date:
% Done:

0%

TYPO3 Version:
8
PHP Version:
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

Consider the following Backend Layout:

mod.web_layout.BackendLayouts.infoPage {
  title = Info Page
  config.backend_layout {
    colCount = 1
    rowCount = 1
    rows {
      1.columns.1 {
        name = Content Area
        colPos = 0
        allowed.CType (
          gridelements_pi1,
          list,
          shortcut,
          text,
        )
      }
    }
  }
}

The multi-line value for allowed.CType is perfectly valid and correctly parsed by TYPO3. However \TYPO3\CMS\Backend\Provider\PageTsBackendLayoutDataProvider->generateBackendLayoutFromTsConfig tries to reconstruct the original TSconfig from the parsed array and assumes all values are one-line values with = syntax.

The reconstructed TSconfig then looks like this (in Xdebug)

backend_layout.colCount = 1
backend_layout.rowCount = 1
backend_layout.rows.1.columns.1.name = Content Area
backend_layout.rows.1.columns.1.colPos = 0
backend_layout.rows.1.columns.1.allowed.CType =           gridelements_pi1,
          list,
          shortcut,
          text

Resulting in only gridelements_pi1 to be allowed.

A possible solution could be to strip all line breaks while reconstructing the TSconfig.

Workaround: Do not use the multi-line value syntax in Backend Layouts.

This affects at least TYPO3 8 to 10.

History

#1 Updated by Sebastian Michaelsen 27 days ago

  • Description updated (diff)

#2 Updated by Georg Ringer 26 days ago

  • Status changed from New to Needs Feedback

#3 Updated by Georg Ringer 26 days ago

  • Status changed from Needs Feedback to Accepted

Also available in: Atom PDF