getBackendUser()->getTSConfig()['options.']['sites.']['hideSets'] ?? '', true); foreach ($this->setRegistry->getAllSets() as $set) { $hidden = $set->hidden || in_array($set->name, $hiddenSets, true); if ($hidden && !isset($selectedSets[$set->name])) { continue; } $fieldConfiguration['items'][] = [ 'label' => $this->getLanguageService()->sL($set->label) . ( $hidden ? ' (' . $this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.hidden') . ')' : '' ), 'value' => $set->name, ]; unset($selectedSets[$set->name]); } $flashMessageQueue = $this->flashMessageService->getMessageQueueByIdentifier(); $languageService = $this->getLanguageService(); foreach ($selectedSets as $invalidSet => $_) { $reason = $this->setRegistry->getInvalidSets()[$invalidSet] ?? [ 'error' => SetError::notFound, 'name' => $invalidSet, 'context' => 'site:' . ($fieldConfiguration['row']['identifier'] ?? ''), ]; $error = sprintf( $languageService->sL($reason['error']->getLabel()), $reason['name'], $reason['context'], ); $fieldConfiguration['items'][] = [ 'label' => sprintf( $languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.noMatchingValue'), $error ), 'value' => $invalidSet, ]; $flashMessage = new FlashMessage( $error, $languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:error.site.invalidSetDependencies'), ContextualFeedbackSeverity::ERROR, false ); $flashMessageQueue->enqueue($flashMessage); } } private function getBackendUser(): BackendUserAuthentication { return $GLOBALS['BE_USER']; } private function getLanguageService(): LanguageService { return $GLOBALS['LANG']; } }