Breaking: Partner pages render their content without a global path
Description
The page template of the page type Academic partner rendered the
content elements of the page through the global TypoScript object
styles.. Only the opt-in set
fgtclb/, its static template and the static
template Academic Partners: All components, which included it,
defined it, for every page of the site. A site on the component sets or the
component static templates without them got an exception on every partner
page:
No Content Object definition found at TypoScript object path "styles.content.getContent"
From 3.0 on, the page object of the partner page type carries the content
itself, as the variable
partner:
[page && traverse(page, "doktype") == 40]
page.10.variables.partnerContent = CONTENT
page.10.variables.partnerContent {
table = tt_content
select {
orderBy = sorting, uid
where = {#colPos}=0
}
}
[END]
The page template renders it as
{partner, on a
FLUIDTEMPLATE
and on a
PAGEVIEW
page object alike. Every set of this extension
delivers it.
The site wide override is not needed any more, and it is removed:
- the set
fgtclb/;academic- partners- content- load - the dependency on it in the aggregate set
fgtclb/;academic- partners - the static template
Academic Partners: Content load override (academic_partners),
stored as
EXT:, and the entry for it in Academic Partners: All components (academic_partners);academic_ partners/ Configuration/ Typo Script/ Content Load - the file
EXT:academic_partners/Configuration/TypoScript/ContentLoad/setup.typoscript.
The program page went the same way before, and the partner and project pages
followed together, so from 3.0 on no academic extension defines
styles..
Impact
- A site configuration that names
fgtclb/as a dependency, directly or through a set of the site package, fails completely: TYPO3 answers every page of the site with HTTP 500 and the message "Site <identifier> depends on unavailable sets: ...", which names the removed set, or the set of the site package that depends on it. A site that depends on the aggregateacademic- partners- content- load fgtclb/is not affected.academic- partners styles.is no longer defined. A template of the site package that renders it throughcontent. get Content f:throws the exception above.c Object - A template override of
Academicthat still rendersPartner. html styles.throws the same exception.content. get Content - A customisation of
styles., for example one that slides the content from the parent pages, no longer reaches partner pages. The same holds for a customisation ofcontent. get Content styles.that was parsed before the override: the override copied it intocontent. get styles..content. get Content - A
sys_record that selects the removed static template, or imports the removed file, gets nothing for it, without a message.template
Affected Installations
Installations that name the content load set or select its static template,
that render
styles. in a template of their own,
or that customised that object for partner pages.
The console command
academic: of
EXT: reports each of the stored references: a site that
depends on the removed set as
unavailable-, the removed static
template as
static- and an
@import
of the removed
file in a TypoScript record as
typoscript-.
Migration
- Remove
fgtclb/from theacademic- partners- content- load dependenciesof the site configuration and of every set of the site package. The aggregatefgtclb/, or the component sets, deliver everything a partner page needs.academic- partners - Remove the static template from the
sys_record, and antemplate @importof the removed file from a site package. - A template override of
AcademicrendersPartner. html {partnerinstead of theContent -> f: format. raw ()} f:call, or overrides the partialc Object Partner/alone.Page/ Content. html - Move a customisation of
styles.for partner pages tocontent. get Content page., inside the same condition - see The content of a partner page.10. variables. partner Content -
A site package that renders
styles.in a template of its own defines the object itself, for example fromcontent. get Content styles., which TYPO3 defines on every site:content. get styles.content.getContent < styles.content.get styles.content.getContent.select.where = {#colPos}=0Copied!