Breaking: Site sets and static templates have been restructured
Description
The TypoScript of this extension was shipped twice: the static template read
Configuration/, and the site set
fgtclb/
shipped its own constants. and setup., each
of them a single
@import
of that folder. The page TSconfig was not
selectable on a page at all — it existed only as the three wizard files under
Configuration/, glob imported into the always-included
Configuration/.
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/,Typo Script/ New Job Form/ Configuration/andTypo Script/ List/ Configuration/are what the static templates register and what the sets point theirTypo Script/ Detail/ typoscriptkey at.Configuration/,TSconfig/ New Job Form/ page. tsconfig Configuration/andTSconfig/ List/ page. tsconfig Configuration/hold the page TSconfig of a component and are what the page field Page TSconfig offers and what the sets point theirTSconfig/ Detail/ page. tsconfig pagetskey at.Configuration/andTypo Script/ Full/ Configuration/are the aggregates for installations that do not use site sets.TSconfig/ Full/ page. tsconfig
All three content elements are driven by one Extbase plugin and share one
plugin. block. That block did not move: it stays
in Configuration/, which is the value every
sys_ record that selected the static template of this extension
already stores. Each component folder is a subfolder of it and names it in a
one-line include_, so the block exists once and is
delivered by both mechanisms alike.
The content elements are now hidden by default. The always-included
Configuration/ removes
academicjobs_,
academicjobs_ and
academicjobs_ from the
selectable content element types, and the page TSconfig of a component adds its
own element back — so an element is offered where it is wanted instead of on
every page of every installation. The wizard entry of an element moved into the
same file, so it arrives with the component instead of with 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.
Four constants changed their shipped default from empty to
0
:
plugin.,
plugin.,
plugin. and
plugin.. The site
settings of this extension always declared them as
0
, and a site that
uses both delivery mechanisms had the declared default reset to empty by the
second read. Every consumer of the four reads an empty value and a
0
as "no page selected", so the change is a reconciliation, not a
behaviour change.
Impact
A
sys_ record that selected the static template of this extension
keeps its stored value, and that value keeps delivering the shared plugin
configuration — but it delivers nothing else, and it never made a content
element selectable.
A site package that imported one of the shipped page TSconfig 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 three content elements are 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.
Warning
Do not open an existing Jobs New, Jobs List or
Jobs Detail record in the backend form on a page that does not
include that page TSconfig. An item removed through
TCEFORM. is excluded from the
[ invalid value ] fallback TYPO3 otherwise adds for a stored
value it does not know, and the stored value is dropped from the form data
as well. The field Type therefore comes up with nothing
selected, and saving the record writes whatever the browser preselected
into
CType
— the record silently becomes another content element.
The frontend keeps rendering it correctly until that happens.
Include the page TSconfig of the component on every page tree that holds such records, and do it before editing them.
The set
fgtclb/ keeps its name and keeps delivering
everything, so a site configuration that depends on it needs no change.
Affected Installations
Installations that use one of the content elements of this extension without including its page TSconfig, and installations that import one of the shipped page TSconfig files from an own site package.
Migration
The static template entry does not have to be replaced — but selecting one of the new entries instead documents what a site actually uses:
| Old entry | New entry |
|---|---|
Academic Jobs (academic_jobs),
stored as EXT: | Academic Jobs: All components (academic_jobs),
stored as EXT: — or one
of Academic Jobs: Jobs New,
Academic Jobs: Jobs List,
Academic Jobs: Jobs Detail. The old value stays
registered as Academic Jobs: Shared plugin settings
(academic_jobs) and keeps delivering the shared plugin block. |
Add the page TSconfig entry, which did not exist before, in the page record of
the site root, tab Resources, field Page TSconfig:
Academic Jobs: All components (academic_jobs), stored as
EXT:. 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 — 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: | unchanged |
EXT: | unchanged |
EXT: | EXT: |
EXT: | EXT: |
EXT: | EXT: |
EXT: | EXT: |
A site configuration may name the new component sets instead of the aggregate:
| Set | Delivers |
|---|---|
fgtclb/ | Unchanged in name, now delivers through the component sets below. |
fgtclb/ | The Jobs New content element only. |
fgtclb/ | The Jobs List content element only. |
fgtclb/ | The Jobs Detail content element only. |