getLanguageService(); $result = $this->initializeResultArray(); $fieldName = $this->data['fieldName']; $l10nStateFieldName = ''; if (isset($l10nStateFieldName)) { $l10nStateFieldName = 'l10n_state'; } if ( !$l10nStateFieldName || !isset($this->data['defaultLanguageRow']) || !isset($this->data['processedTca']['columns'][$fieldName]['config']['behaviour']['allowLanguageSynchronization']) || !$this->data['processedTca']['columns'][$fieldName]['config']['behaviour']['allowLanguageSynchronization'] ) { return $result; } $l10nParentFieldName = $this->data['processedTca']['ctrl']['transOrigPointerField'] ?? null; $l10nSourceFieldName = $this->data['processedTca']['ctrl']['translationSource'] ?? null; $sourceLanguageTitle = ''; $fieldValueInParentRow = ''; $fieldValueInSourceRow = null; if ($l10nParentFieldName && $this->data['databaseRow'][$l10nParentFieldName] > 0) { if ($l10nSourceFieldName && $this->data['databaseRow'][$l10nSourceFieldName] > 0) { $languageField = $this->data['processedTca']['ctrl']['languageField'] ?? null; if ($languageField && isset($this->data['sourceLanguageRow'][$languageField]) && $this->data['sourceLanguageRow'][$languageField] > 0 ) { $languageUidOfSourceRow = $this->data['sourceLanguageRow'][$languageField]; $sourceLanguageTitle = $this->data['systemLanguageRows'][$languageUidOfSourceRow]['title'] ?? ''; $fieldValueInSourceRow = $this->data['sourceLanguageRow'][$fieldName] ?? null; } } $fieldValueInParentRow = (string)$this->data['defaultLanguageRow'][$fieldName]; } $localizationState = State::fromJSON( $this->data['tableName'], $this->data['databaseRow'][$l10nStateFieldName] ?? null ); $fieldElementName = 'data[' . htmlspecialchars($this->data['tableName']) . ']' . '[' . (int)($this->data['databaseRow']['uid']) . ']' . '[' . htmlspecialchars($l10nStateFieldName) . ']' . '[' . htmlspecialchars($this->data['fieldName']) . ']'; $html = []; $html[] = '
'; $html[] = '
'; $html[] = ''; $html[] = $languageService->sL('LLL:EXT:lang/Resources/Private/Language/locallang_wizards.xlf:localizationStateSelector.header'); $html[] = ''; $html[] = '
'; $html[] = '
'; $html[] = ''; $html[] = '
'; $html[] = '
'; $html[] = ''; $html[] = '
'; if ($fieldValueInSourceRow !== null) { $html[] = '
'; $html[] = ''; $html[] = '
'; } $html[] = '
'; $result['html'] = implode(LF, $html); return $result; } /** * @return LanguageService */ protected function getLanguageService() { return $GLOBALS['LANG']; } }