fix: editors can create records in the folders outside the sites again

Editors got "recordEditAccessInternals() check failed [ERROR: The
"languageField" field named "sys_language_uid" was not found in testing
record!]" for every new record of our tables, e.g. a hotel's additional
code or a new hotel. The record folders lie on the root level, outside
every site, and no form submitted the language field. TYPO3 10 then took
language 0 from sys_language; since TYPO3 11, DataHandler only takes the
default language from the record's site and sets none without a site, so
the access check for non-admins fails.

As stock TYPO3 expects it, the forms now submit the language: a Language
tab with sys_language_uid (default 0) and l10n_parent in the 27
language-aware tables of ep_products and ep_theme. Matchcodes (a hotel's
additional codes) are no longer translatable at all: none was ever
translated, and the feed, the API and the import read them without
language handling.

LabelService no longer reads from a missing record when the form of a
new record asks for a label.

Checked locally as an editor: FormEngine preselects language 0, and new
hotels, products, FAQs and additional codes are saved.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
frommeandClaude Opus 5.5 committed 2026-10-26 12:31:55 +01:00
1 parent ecd5ea66c5
commit 99cd3c1898
29 files changed
+82 -82

No files matched your search

@@ -28,7 +28,7 @@ return [
],
'types' => [
'1' => [
'showitem' => 'hidden, name, description, image, --palette--;;social',
'showitem' => 'hidden, name, description, image, --palette--;;social, --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, sys_language_uid, l10n_parent',
],
],
'palettes' => [
@@ -39,7 +39,7 @@ return [
'sys_language_uid' => [
'exclude' => 0,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language',
'config' => ['type' => 'language'],
'config' => ['type' => 'language', 'default' => 0],
],
'l10n_parent' => [
'displayCond' => 'FIELD:sys_language_uid:>:0',
@@ -28,7 +28,7 @@ return [
],
'types' => [
'1' => [
'showitem' => '--palette--;;top, --palette--;;headlines, --palette--;;linkbutton, image',
'showitem' => '--palette--;;top, --palette--;;headlines, --palette--;;linkbutton, image, --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, sys_language_uid, l10n_parent',
],
],
'palettes' => [
@@ -41,7 +41,7 @@ return [
'sys_language_uid' => [
'exclude' => 0,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language',
'config' => ['type' => 'language'],
'config' => ['type' => 'language', 'default' => 0],
],
'l10n_parent' => [
'displayCond' => 'FIELD:sys_language_uid:>:0',