Project

General

Profile

Actions

Bug #86979

closed

stdWrap fieldRequired/insertData sometimes not working as expected since TYPO3 9 LTS

Added by Josef Glatz over 5 years ago. Updated about 5 years ago.

Status:
Closed
Priority:
Must have
Assignee:
-
Category:
TypoScript
Target version:
-
Start date:
2018-11-22
Due date:
% Done:

100%

Estimated time:
TYPO3 Version:
9
PHP Version:
Tags:
Complexity:
Is Regression:
Yes
Sprint Focus:

Description

Problem/Description

The following TypoScript snippet works with TYPO3 8 LTS:

page {
    bodyTagCObject = COA
    bodyTagCObject {
        stdWrap.wrap = <body id="top"|>

        # attribute class
        10 = COA
        10 {
            stdWrap {
                noTrimWrap = | class="|"|
                required = 1
            }

            # Add current language
            20 = TEXT
            20 {
                value = language-{TSFE:sys_language_uid} languagecontent-{TSFE:sys_language_content}
                insertData = 1
                noTrimWrap = || |
            }

            # Add level
            25 = TEXT
            25 {
                value = level-{level:0}
                insertData = 1
                noTrimWrap = || |
            }

            # Add uid of optional FE-layout
            40 = TEXT
            40 {
                fieldRequired = layout
                value = layout-{field:layout}
                insertData = 1
                noTrimWrap = | ||
            }

            # Add uid of rootpage
            50 = TEXT
            50 {
                value = root-{leveluid:0}
                insertData = 1
                noTrimWrap = | ||
            }

            # Add class if it's the rootpage
            60 = TEXT
            60 {
                fieldRequired = is_siteroot
                value = rootpage
                noTrimWrap = | ||
            }
        }

        # attribute(s) data-*
        20 = COA
        20 {
            # Add page UID
            10 = TEXT
            10 {
                value = data-page-uid="{field:uid}" 
                insertData = 1
                noTrimWrap = | ||
            }
        }
    }
}

Link to the working code snippet of my TYPO3 Distribution
__

The following objects does not appear anymore when it should apply on a proper page:

page.bodyTagCObject.10.60 does not render anything
            # Add class if it's the rootpage
            60 = TEXT
            60 {
                fieldRequired = is_siteroot
                value = rootpage
                noTrimWrap = | ||
            }

It seems like the page field is_siteroot isn't true. But it works when rendering the value, and it shows 1 on the root page. So fieldRequired get's not "true"

  • instead of rootpage
  • nothing is rendered/returned by this object
page.bodyTagCObject.20.10 does not render {field:uid}
            # Add page UID
            10 = TEXT
            10 {
                value = data-page-uid="{field:uid}" 
                insertData = 1
                noTrimWrap = | ||
            }
  • instead of data-page-uid="1"
  • only data-page-uid="" is rendered

Just to re-check: the following snippet is working fine on the same page

page {
4 = TEXT
    4 {
        field = is_siteroot
        fieldRequired = is_siteroot
        wrap = <h1>|</h1>
    }
    5 = TEXT
    5 {
        field = uid
        wrap = <h2>|</h2>
    }
}

Acceptance Criteria

  • Such a straight forward TypoScript setup must work, as there should be no breaking changes in this area after upgrading to TYPO3 9 LTS.

Related issues 3 (0 open3 closed)

Related to TYPO3 Core - Bug #87186: Missing namespace for TypoScriptFrontendController in CObjectViewHelperClosed2018-12-17

Actions
Related to TYPO3 Core - Bug #86703: Page's data partly not available via getText if page has form CEClosed2018-10-20

Actions
Has duplicate TYPO3 Core - Bug #87003: Plugins overrides Page DataClosedBenjamin Kott2018-11-26

Actions
Actions

Also available in: Atom PDF