typo3-rector
typo3-rector copied to clipboard
Breaking: #102627 - Removed special properties of page arrays in PageRepository
Breaking: #102627 - Removed special properties of page arrays in PageRepository
https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/13.0/Breaking-102627-RemovedSpecialPropertiesOfPageArraysInPageRepository.html
title: "Breaking: \#102627 - Removed special properties of page arrays in PageRepository"
See 102627
Description
When requesting a page with a translation, the following special properties of an overlaid page have been removed:
_PAGES_OVERLAY_UID
: The property denounced the UID of the overlaid
database record entry, keeping "uid" as the original uid field.
_PAGES_OVERLAY
: A boolean flag being set to true if a page was
actually overlaid with a found record.
_PAGES_OVERLAY_LANGUAGE
: The value of the database record's
"sys_language" field value (the "language ID" of the overlaid record)
_PAGES_OVERLAY_REQUESTEDLANGUAGE
: A special property used to set the
actual requested language when having multi-level fallbacks while
overlaying a record. When a requested overlay of language=5 is not
available, but its fallback to language=2 is available, this property is
set to "5" even though the page records' "sys_language_uid" field is set
to 2.
These special properties have been relevant especially when generating menus, or when fetching overlays for Extbase domain models, and have been used due to historical reasons, because translations of pages have been set in "pages_language_overlay" instead of the database table "pages" until TYPO3 v9.0.
Any other record, where translations have been stored in the database, received the special property "_LOCALIZED_UID".
Impact
When calling PageRepository->getPage()
or
PageRepository->getLanguageOverlay()
these special page-related
properties are not set anymore when overlaying a page.
Affected installations
TYPO3 installations with custom extensions working on the low-level API using these properties.
Migration
The value of the previous _PAGES_OVERLAY_UID
property is now available
in _LOCALIZED_UID
making it consistent with all database record
overlays across the system.
The property _PAGES_OVERLAY
is removed in favor of a
isset($page['_LOCALIZED_UID')
check instead.
The property _PAGES_OVERLAY_LANGUAGE
is removed in favor of the
property $page['sys_language_uid']
which holds the same value.
The property _PAGES_OVERLAY_REQUESTEDLANGUAGE
is moved to a new
property called _REQUESTED_OVERLAY_LANGUAGE
which is available now for
any kind of overlaid record, and not just pages.
Database, PHP-API, NotScanned, ext:core
@simonschaufi What has to be done here? Is it possible to migrate the keys and we are done?