Skip to content

Commit e8bc803

Browse files
o-babnf
authored andcommitted
[BUGFIX] Use correct language capability field in route mapper
Additionally, adjust a couple of source field usages to properly use the has*() method and make use of null-safe-operator. Resolves: #106773 Related: #106722 Releases: main Change-Id: I9eff9143fdd81a75fcf45fa26e4af830f682981f Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/89536 Reviewed-by: Benjamin Franzke <ben@bnf.dev> Tested-by: Benni Mack <benni@typo3.org> Reviewed-by: Benni Mack <benni@typo3.org> Tested-by: core-ci <typo3@b13.com> Tested-by: Benjamin Franzke <ben@bnf.dev>
1 parent daeb3b9 commit e8bc803

File tree

5 files changed

+9
-12
lines changed

5 files changed

+9
-12
lines changed

typo3/sysext/core/Classes/DataHandling/Localization/DataMapProcessor.php

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ protected function collectItems(string $tableName, array $idValues): void
177177
'language' => $languageCapability->getLanguageField()->getName(),
178178
'parent' => $languageCapability->getTranslationOriginPointerField()->getName(),
179179
];
180-
if ($languageCapability->getTranslationSourceField() !== null) {
180+
if ($languageCapability->hasTranslationSourceField()) {
181181
$fieldNames['source'] = $languageCapability->getTranslationSourceField()->getName();
182182
}
183183

@@ -506,11 +506,8 @@ protected function synchronizeReferences(DataMapItem $item, string $fieldName, a
506506
$fieldNames = [
507507
'language' => $languageCapability->getLanguageField()->getName(),
508508
'parent' => $languageCapability->getTranslationOriginPointerField()->getName(),
509-
'source' => null,
509+
'source' => $languageCapability->getTranslationSourceField()?->getName(),
510510
];
511-
if ($languageCapability->getTranslationSourceField() !== null) {
512-
$fieldNames['source'] = $languageCapability->getTranslationSourceField()->getName();
513-
}
514511
}
515512

516513
$suggestedAncestorIds = $this->resolveSuggestedInlineRelations(
@@ -907,7 +904,7 @@ protected function fetchDependencies(string $tableName, array $ids): array
907904
'language' => $languageCapability->getLanguageField()->getName(),
908905
'parent' => $languageCapability->getTranslationOriginPointerField()->getName(),
909906
];
910-
if ($languageCapability->getTranslationSourceField() !== null) {
907+
if ($languageCapability->hasTranslationSourceField()) {
911908
$fieldNames['source'] = $languageCapability->getTranslationSourceField()->getName();
912909
}
913910

@@ -992,7 +989,7 @@ protected function fetchDependentIdMap(string $tableName, array $ids, int $desir
992989
'language' => $languageCapability->getLanguageField()->getName(),
993990
'parent' => $languageCapability->getTranslationOriginPointerField()->getName(),
994991
];
995-
if ($languageCapability->getTranslationSourceField() !== null) {
992+
if ($languageCapability->hasTranslationSourceField()) {
996993
$fieldNames['source'] = $languageCapability->getTranslationSourceField()->getName();
997994
}
998995
} else {

typo3/sysext/core/Classes/DataHandling/Model/RecordStateFactory.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ protected function resolveAspectFieldNames(): array
7979
return [
8080
'workspace' => 't3ver_wsid',
8181
'versionParent' => 't3ver_oid',
82-
'language' => $languageCapability?->getLanguageField()?->getName(),
83-
'languageParent' => $languageCapability?->getTranslationOriginPointerField()?->getName(),
82+
'language' => $languageCapability?->getLanguageField()->getName(),
83+
'languageParent' => $languageCapability?->getTranslationOriginPointerField()->getName(),
8484
'languageSource' => $languageCapability?->getTranslationSourceField()?->getName(),
8585
];
8686
}

typo3/sysext/core/Classes/Domain/RecordFactory.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ protected function extractSystemInformation(TcaSchema $schema, RawRecord $rawRec
215215
$languageCapability = $schema->getCapability(TcaSchemaCapability::Language);
216216
$languageField = $languageCapability->getLanguageField()->getName();
217217
$transOrigPointerField = $languageCapability->getTranslationOriginPointerField()->getName();
218-
$translationSourceField = $languageCapability->hasTranslationSourceField() ? $languageCapability->getTranslationSourceField()->getName() : '';
218+
$translationSourceField = $languageCapability->getTranslationSourceField()?->getName() ?? '';
219219
try {
220220
$systemProperties['language'] = new LanguageInfo(
221221
(int)$rawRecord->get($languageField),

typo3/sysext/core/Classes/Routing/Aspect/PersistedAliasMapper.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ public function __construct(array $settings)
133133
$schema = GeneralUtility::makeInstance(TcaSchemaFactory::class)->get($this->tableName);
134134
if ($schema->isLanguageAware()) {
135135
$this->languageFieldName = $schema->getCapability(TcaSchemaCapability::Language)->getLanguageField()->getName();
136-
$this->languageParentFieldName = $schema->getCapability(TcaSchemaCapability::Language)->getTranslationSourceField()->getName();
136+
$this->languageParentFieldName = $schema->getCapability(TcaSchemaCapability::Language)->getTranslationOriginPointerField()->getName();
137137
} else {
138138
$this->languageFieldName = null;
139139
$this->languageParentFieldName = null;

typo3/sysext/core/Classes/Routing/Aspect/PersistedPatternMapper.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ public function __construct(array $settings)
136136
$schema = GeneralUtility::makeInstance(TcaSchemaFactory::class)->get($this->tableName);
137137
if ($schema->isLanguageAware()) {
138138
$this->languageFieldName = $schema->getCapability(TcaSchemaCapability::Language)->getLanguageField()->getName();
139-
$this->languageParentFieldName = $schema->getCapability(TcaSchemaCapability::Language)->getTranslationSourceField()->getName();
139+
$this->languageParentFieldName = $schema->getCapability(TcaSchemaCapability::Language)->getTranslationOriginPointerField()->getName();
140140
} else {
141141
$this->languageFieldName = null;
142142
$this->languageParentFieldName = null;

0 commit comments

Comments
 (0)