Important: The page template name of the academic partner page type is set explicitly
Description
This extension registers a page type with a backend layout and ships the page
template for it in Resources/. Its TypoScript adds that
directory to
page., but it did not set
page., the property that actually selects the file.
A site package deriving the name from the backend layout therefore did not find it. bk2k/bootstrap-package does exactly that:
templateName.cObject = TEXT
templateName.cObject {
data = pagelayout
case = uppercamelcase
split {
token = pagets__
cObjNum = 1
1.current = 1
}
}
case = uppercamelcase
is
General, which lowercases the whole
string before it camel cases it on underscores. The registered backend layout
pagets__ therefore resolved to
Academicpartner., and the frontend ended in an
Invalid. In a production context the page body
read Oops, an error occurred!.
The extension now sets the name itself, inside the page type condition it already uses:
[page && traverse(page, "doktype") == 40]
page.10 {
templateName >
templateName = AcademicPartner
}
[END]
The property has to be cleared first. The Bootstrap package assigns
template, and a cObject overwrites the plain value in
Content, so assigning without clearing
would change nothing.
Impact
A page of this type renders its template on a site package that derives the name from the backend layout, where it previously did not render at all.
Nothing changes for a site package that sets the name itself, as long as it does
so after this extension's TypoScript, and nothing changes for a
PAGEVIEW
page object on TYPO3 v13. That content object ignores
template and resolves the file from
paths
, which
is why that integration worked before and is unaffected now.
Affected Installations
All installations of this extension that use a
FLUIDTEMPLATE
page
object. An installation that shipped Academicpartner. in its own
site package to work around this loses that override: the template of this
extension is used instead. Clearing
page. after
this extension's TypoScript restores it.
The name only takes effect when the TypoScript of this extension is parsed
after the TypoScript that assigns
template.
Otherwise the name is overwritten again, and a page of this type ends in the
exception described above:
- On TYPO3 v13 and v14 the TypoScript of the site sets is parsed before the
TypoScript of the
sys_records. The static template of the Bootstrap Package, which its version 15 offers and its version 16 no longer does, therefore wins over the name the set of this extension sets, and so does a record of the site package that assignstemplate templateitself. Include the Bootstrap Package through its site set instead, or include the static template of this extension after the one of the Bootstrap Package in the same record.Name. c Object - On TYPO3 v12 the static templates of a record are parsed in the order of the record. Include the static template of this extension after the one of the Bootstrap Package.
Included TypoScript in the module TypoScript shows the order on a page of this type.