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/, and the two site
sets
fgtclb/ and
fgtclb/ shipped their own
constants. and setup., each of them a single
@import
of that folder. The page TSconfig existed as one flat file,
Configuration/, 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 content element instead of as one block:
Configuration/still holds the sharedTypo Script/ Default/ plugin.block — all six content elements are driven by one Extbase plugin, so there is one copy of it and every component folder names it in its owntx_ academicpersons include_.static_ file. txt Configuration/is what the static template registers and what the component set points itsTypo Script/<Component>/ typoscriptkey at.Configuration/holds the page TSconfig of one content element and is what the page field Page TSconfig offers and what the set points itsTSconfig/<Component>/ page. tsconfig pagetskey at.Configuration/andTypo Script/ Full/ Configuration/are the aggregates for installations that do not use site sets.TSconfig/ Full/ page. tsconfig
The content elements are now hidden by default. The always-included
Configuration/ removes all six from the selectable content
element types, and the page TSconfig of a component adds its own back — so an
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.
Two defaults changed as well.
plugin.
and
plugin. were empty in
constants. while the site sets declared last and
title for the very same paths, so the two mechanisms configured a site
differently. Both now carry the same value everywhere.
demand. is additionally corrected to last. The value
the site sets shipped, title, is not one the extension accepts: the
extension configuration
demand. allows
first and last only, and
Profile drops anything else. A site
on a site set therefore asked for an ordering it never got.
Impact
The
sys_ records of this extension keep working. Both values that
installations store today — EXT:
and EXT: — still resolve,
and both still deliver the plugin configuration. Only the labels shown next to
them in the record changed.
A site that has no site set and did not set
plugin. itself now groups a
profile list by the first letter of the last name, because that is the default
the site sets already applied. Set the constant to an empty value to keep an
ungrouped list.
A site on a site set that did not set
plugin. itself now sorts a
profile list by last name. It asked for title before and got no ordering at
all, because the value was rejected. Set the setting to first for the
other accepted ordering; there is no supported way back to "no ordering"
through this setting.
A site package that imported one of the removed 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.
None of the six content elements is offered in the backend until the page TSconfig of its component is included, through the site set or through the page field Page TSconfig. This affects every installation: before this change the extension hid nothing.
Warning
Do not open an existing record of one of these content elements in the
backend form on a page that does not include the page TSconfig of its
component. 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 components on every page tree that holds such records, and do it before editing them.
The sets
fgtclb/ and
fgtclb/ keep their names and keep delivering
everything, so a site configuration that depends on either needs no change.
Affected Installations
Every installation that uses one of the content elements of this extension, plus installations that import one of the shipped files from an own site package.
Migration
Add the page TSconfig entry, which did not exist before, in the page record of
the site root, tab Resources, field Page TSconfig:
Academic Persons: All components (academic_persons), 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 a site set instead need no migration — but they must not use both mechanisms at once, see the Configuration chapter.
The static template entries in the
sys_ record need no migration
either. Their labels changed, their stored values did not:
| Stored value | Old label | New label |
|---|---|---|
EXT: | Academic Persons Settings (academic_persons) | Academic Persons: Shared plugin settings (academic_persons) |
EXT: | Academic Persons Standalone (academic_persons) | Academic Persons: Standalone page (academic_persons) |
Adjust every
@import
in an own site package:
| Old path | New path |
|---|---|
EXT: | EXT: |
EXT: | EXT: |
EXT: | EXT: |
EXT: | EXT:
and, for the
page
object,
EXT: |
EXT: | EXT: |
The first two were shipped as
@deprecated
one line forwards to
Configuration/ and are removed with this change.
A site configuration may name the new component sets instead of the aggregate:
| Set | Delivers |
|---|---|
fgtclb/ | New name of the aggregate, delivers through the component sets below. |
fgtclb/ | Unchanged in name, now an alias of fgtclb/. |
fgtclb/ | Unchanged in name, now the aggregate plus the
page
object. |
fgtclb/ | The Persons List content element only. |
fgtclb/ | The Persons List and Detail content element only. |
fgtclb/ | The Persons Detail content element only. |
fgtclb/ | The Contacts content element only. |
fgtclb/ | The Profiles: Selected Profiles content element only. |
fgtclb/ | The Profiles: Selected Contracts content element only. |