Breaking: Site sets and static templates have been restructured 

Description 

The TypoScript and the page TSconfig of this extension were shipped twice: the static template read Configuration/TypoScript/, and the site set fgtclb/academic-partners shipped its own constants.typoscript and setup.typoscript, each of them a single @import of that folder. The page TSconfig existed only as the wizard file Configuration/TsConfig/Wizards/NewContentElement.tsconfig and was not selectable on a page at all.

Both mechanisms now read one physical copy of every file, and both of them deliver the extension per component instead of as one block:

  • Configuration/TypoScript/ keeps the shared plugin.tx_academicpartners block and the page object of the page type. All four content elements are driven by the one plugin, so that block is shipped once and every component folder names it in a one-line include_static_file.txt.
  • Configuration/TypoScript/List/, Configuration/TypoScript/Map/, Configuration/TypoScript/PartnershipsList/ and Configuration/TypoScript/PartnershipsTeaser/ are the four component folders. They are what the static template registers and what the matching set points its typoscript key at.
  • Configuration/TSconfig/<Component>/page.tsconfig holds the page TSconfig of a component and is what the page field Page TSconfig offers and what the set points its pagets key at.
  • Configuration/TypoScript/Full/ and Configuration/TSconfig/Full/page.tsconfig are the aggregates for installations that do not use site sets.

The directory Configuration/TsConfig/ is now spelled Configuration/TSconfig/, the spelling TYPO3 itself uses for the term. Every path below it changed with it, and the migration table lists them.

The content elements are now hidden by default. The always-included Configuration/page.tsconfig removes all four content element types from the selectable ones, and the page TSconfig of a component adds its own back. An element is therefore offered where it is wanted instead of on every page of every installation. The TCA registration itself did not move, so the frontend renders existing records exactly as before. Editing such a record in the backend needs care. Read the warning below before upgrading.

The styles.content.getContent override that Configuration/TypoScript/setup.typoscript used to import unconditionally is a component of its own now, Configuration/TypoScript/ContentLoad/setup.typoscript. It redefines a global TypoScript object path for every page of a site, so it must be possible to take the content elements without it.

The page type Academic partner (doktype 40) and its backend layout AcademicPartner are unchanged and stay installation-wide. They are values stored on pages records and are not, and must not be, part of any opt-in set.

Impact 

The static template of version 2.3, offered as Academic Partners Page Setup, was registered under the extension key of EXT:academic_programs, see Important: The static template and the backend layout are registered correctly. A sys_template record that selected it stores EXT:academic_programs/Configuration/TypoScript/ and keeps including the TypoScript of that extension. The update does not rewrite the stored value, so the TypoScript of this extension is still not included by such a record.

The folder EXT:academic_partners/Configuration/TypoScript/ is now registered under the right key and keeps the shared plugin configuration and the page rendering. What it no longer delivers is the styles.content.getContent override, which moved into a component of its own.

A site package that imported one of the moved files by path fails to resolve it. @import of a missing file is silent, so this shows up as missing configuration rather than as an error message.

The four content elements are no longer offered in the backend until the page TSconfig of their component is included, through the site set or through the page field Page TSconfig.

The set fgtclb/academic-partners keeps its name and keeps delivering everything, so a site configuration that depends on it needs no change.

Site sets arrived in TYPO3 v13.1 and do nothing at all on TYPO3 v12: the core has no set API there and the folder Configuration/Sets/ is never read. Everything above about the static templates and the page field Page TSconfig therefore applies to both TYPO3 versions this extension supports, and everything about sets applies to TYPO3 v13 only. An installation on v12 has to add the page TSconfig entry described under Migration, and has no alternative to it.

Affected Installations 

Installations that selected the static template of version 2.3 in a sys_template record, that import one of the shipped files from an own site package, that use one of the content elements of this extension without including its page TSconfig, or that relied on the styles.content.getContent override arriving with the plugin configuration.

Migration 

Adjust every @import in an own site package:

Old path New path
EXT:academic_partners/Configuration/TypoScript/constants.typoscript Unchanged.
EXT:academic_partners/Configuration/TypoScript/setup.typoscript Unchanged, but it no longer imports the styles.content override below.
EXT:academic_partners/Configuration/TypoScript/Content/ContentLoad.typoscript EXT:academic_partners/Configuration/TypoScript/ContentLoad/setup.typoscript
EXT:academic_partners/Configuration/TypoScript/Content/ EXT:academic_partners/Configuration/TypoScript/ContentLoad/
EXT:academic_partners/Configuration/TsConfig/Wizards/NewContentElement.tsconfig EXT:academic_partners/Configuration/TSconfig/Full/page.tsconfig
EXT:academic_partners/Configuration/TsConfig/Wizards/*.tsconfig EXT:academic_partners/Configuration/TSconfig/Full/page.tsconfig
EXT:academic_partners/Configuration/TsConfig/BackendLayouts/AcademicPartner.tsconfig EXT:academic_partners/Configuration/TSconfig/BackendLayouts/AcademicPartner.tsconfig
EXT:academic_partners/Configuration/TsConfig/BackendLayouts/*.tsconfig EXT:academic_partners/Configuration/TSconfig/BackendLayouts/*.tsconfig
EXT:academic_partners/Configuration/Sets/AcademicPartners/constants.typoscript Removed. It was a one-line @import of the file above it in this table.
EXT:academic_partners/Configuration/Sets/AcademicPartners/setup.typoscript Removed, for the same reason.

Select the static template of this extension in the sys_template record:

Old entry New entry
Academic Partners Page Setup (academic_programs), stored as EXT:academic_programs/Configuration/TypoScript/ Academic Partners: Shared plugin settings and page rendering (academic_partners), stored as EXT:academic_partners/Configuration/TypoScript/, or Academic Partners: All components (academic_partners), stored as EXT:academic_partners/Configuration/TypoScript/Full, which also carries the content load override.

The entry of version 2.3 stored the path of EXT:academic_programs. Remove it unless the site uses EXT:academic_programs on purpose. The entry of that extension, Academic Programs Page Setup (academic_programs) in version 2.3 and Academic Programs: Shared plugin settings and page rendering (academic_programs) now, stores the same value.

Add the page TSconfig entry, which did not exist before, in the page record of the site root, tab Resources, field Page TSconfig: Academic Partners: All components (academic_partners), stored as EXT:academic_partners/Configuration/TSconfig/Full/page.tsconfig. Without it the content elements are not selectable any more, and existing records of them lose their CType when they are saved from the backend form.

Sites that use the site set instead need no migration. They must not use both mechanisms at once, see the Configuration chapter.

A site configuration on TYPO3 v13 may name the new component sets instead of the aggregate:

Set Delivers
fgtclb/academic-partners Unchanged in name, now delivers through the component sets below.
fgtclb/academic-partners-list The Partners List content element only.
fgtclb/academic-partners-map The Partners Map content element only.
fgtclb/academic-partners-partnerships-list The Partnerships List content element only.
fgtclb/academic-partners-partnerships-teaser The Partnerships Teaser content element only.
fgtclb/academic-partners-content-load The styles.content.getContent override only. The aggregate depends on it. Name the component sets above without it to opt out.