Breaking: Site sets and static templates have been restructured 

Description 

The TypoScript of this extension was shipped through a chain of @import statements: the static template read Configuration/TypoScript/, whose setup.typoscript imported Configuration/TypoScript/Page/, and the site set fgtclb/academic-contacts4pages shipped a setup.typoscript of its own that imported the first one again. The page TSconfig existed only as Configuration/TSconfig/page.tsconfig, reachable through the auto-included Configuration/page.tsconfig and through nothing else — it 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/List/ holds the TypoScript of the Contact list content element and is what the static template registers and what the set points its typoscript key at. Its setup.typoscript carries what Configuration/TypoScript/Page/Plugin.typoscript and Configuration/TypoScript/Page/Fluidtemplate.typoscript used to carry, with one difference: the three Fluid root paths were literals there and are constants now, declared in the constants.typoscript beside it.
  • Configuration/TSconfig/List/page.tsconfig holds its page TSconfig 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 extension ships a constants.typoscript for the first time. It declares the three Fluid root paths of the plugin — plugin.tx_academiccontacts4pages.view.templateRootPath , …partialRootPath and …layoutRootPath — with exactly the values that were hard coded in the setup before, so a site that changes nothing renders exactly as it did. What is new is that these paths can now be overridden as constants, in the constant editor or in config/sites/<site>/constants.typoscript.

The content element is now hidden by default. The always-included Configuration/page.tsconfig removes academiccontacts4pages_list from the selectable content element types, and the page TSconfig of the component adds it back — so the element is 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 is a different matter — read the warning below before upgrading.

Impact 

A sys_template record that selected the old static template keeps its stored value. The folder of that value holds no TypoScript of its own any more. It imports the files of the component folder instead, so it delivers the TypoScript of this extension as before — deprecated, until version 4.0, see Deprecation: The static template path of version 2.3.

A site package that imported Configuration/TypoScript/setup.typoscript by path keeps getting the configuration, deprecated in the same way, once it also imports the constants.typoscript that folder holds now. Every other shipped file it imported by path fails to resolve. @import of a missing file is silent, so this shows up as missing configuration rather than as an error message.

The Contact list content element is no longer offered in the backend until the page TSconfig of the component is included, through the site set or through the page field Page TSconfig.

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

Affected Installations 

Installations that select the static template of this extension in a sys_template record, that import one of the shipped files from an own site package, or that use the content element without including the page TSconfig of this extension.

Migration 

Replace the static template entry in the sys_template record:

Old entry New entry
Contacts for Pages (academic_contacts4pages), stored as EXT:academic_contacts4pages/Configuration/TypoScript/ Academic Contacts4Pages: All components (academic_contacts4pages), stored as EXT:academic_contacts4pages/Configuration/TypoScript/Full — or Academic Contacts4Pages: Contact list (academic_contacts4pages), stored as EXT:academic_contacts4pages/Configuration/TypoScript/List

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

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

Adjust every @import in an own site package:

Old path New path
EXT:academic_contacts4pages/Configuration/TypoScript/setup.typoscript EXT:academic_contacts4pages/Configuration/TypoScript/List/setup.typoscript
EXT:academic_contacts4pages/Configuration/TypoScript/Page/Plugin.typoscript EXT:academic_contacts4pages/Configuration/TypoScript/List/setup.typoscript
EXT:academic_contacts4pages/Configuration/TypoScript/Page/Fluidtemplate.typoscript EXT:academic_contacts4pages/Configuration/TypoScript/List/setup.typoscript
EXT:academic_contacts4pages/Configuration/TypoScript/Page/ EXT:academic_contacts4pages/Configuration/TypoScript/List/setup.typoscript
EXT:academic_contacts4pages/Configuration/TSconfig/page.tsconfig EXT:academic_contacts4pages/Configuration/TSconfig/List/page.tsconfig

A site configuration may name the new component set instead of the aggregate:

Set Delivers
fgtclb/academic-contacts4pages Unchanged in name, now delivers through the component set below.
fgtclb/academic-contacts4pages-list The Contact list content element only.