Skip to content

Commit 79797ec

Browse files
authored
Merge pull request #47 from TYPO3GmbH/overview-wizard-site-languages
Use site languages for file variants overview
2 parents 7cf1883 + e7e640b commit 79797ec

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

Classes/FormEngine/FieldWizard/FileVariantsOverviewWizard.php

+17-8
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
use T3G\AgencyPack\FileVariants\Service\ResourcesService;
2626
use TYPO3\CMS\Backend\Form\AbstractNode;
2727
use TYPO3\CMS\Core\Database\ConnectionPool;
28+
use TYPO3\CMS\Core\Site\Entity\SiteLanguage;
29+
use TYPO3\CMS\Core\Site\SiteFinder;
2830
use TYPO3\CMS\Core\Utility\GeneralUtility;
2931

3032
/**
@@ -42,13 +44,6 @@ public function render(): array
4244
{
4345
$result = $this->initializeResultArray();
4446

45-
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('sys_language');
46-
$languages = [];
47-
$languageRecords = $queryBuilder->select('uid', 'title', 'language_isocode')->from('sys_language')->executeQuery();
48-
while ($language = $languageRecords->fetchAssociative()) {
49-
$languages[(int)$language['uid']] = $language['title'] . ' (' . $language['language_isocode'] . ')';
50-
}
51-
5247
// no parent - we are in default language
5348
$parentField = (int)$this->data['databaseRow']['l10n_parent'][0];
5449
if ($parentField === 0) {
@@ -60,8 +55,9 @@ public function render(): array
6055
$queryBuilder->createNamedParameter((int)$this->data['databaseRow']['uid'], \PDO::PARAM_INT)
6156
))->executeQuery();
6257
while ($translation = $translations->fetchAssociative()) {
58+
$siteLanguage = $this->findSiteLanguageById((int)$translation['sys_language_uid']);
6359
$result['html'] .= '<p class="t3-sysfile-translation">';
64-
$result['html'] .= '<span>' . $languages[(int)$translation['sys_language_uid']] . '</span>';
60+
$result['html'] .= '<span>' . $siteLanguage->getTitle() . '</span>';
6561
$result['html'] .= $resourcesService->generatePreviewImageHtml((int)$translation['file'], 't3-tceforms-sysfile-translation-imagepreview');
6662
$result['html'] .= '</p>';
6763
}
@@ -72,4 +68,17 @@ public function render(): array
7268

7369
return $result;
7470
}
71+
72+
private function findSiteLanguageById(int $siteLanguageId): SiteLanguage
73+
{
74+
foreach (GeneralUtility::makeInstance(SiteFinder::class)->getAllSites() as $site) {
75+
try {
76+
return $site->getLanguageById($siteLanguageId);
77+
} catch (\InvalidArgumentException) {
78+
continue;
79+
}
80+
}
81+
82+
throw new \InvalidArgumentException(sprintf('No site language with ID "%d"', $siteLanguageId), 1711465624);
83+
}
7584
}

0 commit comments

Comments
 (0)