Skip to content

Commit

Permalink
Merge pull request #76 from kitodo/fix-75
Browse files Browse the repository at this point in the history
Fix #75 - require static_info_tables and avoid exception if sys_language is missing
  • Loading branch information
claussni authored Feb 23, 2018
2 parents 8356dee + c081518 commit 0376746
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 29 deletions.
36 changes: 19 additions & 17 deletions Classes/Controller/ClientController.php
Original file line number Diff line number Diff line change
Expand Up @@ -226,25 +226,27 @@ protected function addBaseInputOptionLists($storagePid)

// create input option for all other languages
$installedlanguages = $this->sysLanguageRepository->findInstalledLanguages();
foreach ($installedlanguages as $installedLanguage) {
$langIsoCode = $installedLanguage->getLangIsocode();
if (!empty($langIsoCode)) {
// only when an iso code has been configured, a translation dataset is created
if ($inputOptionTranslator->hasTranslation($langIsoCode)) {
// only when a translation exists, a translation dataset is created
$valueLabelList = $inputOptionTranslator->translate($iso6392b->getValues(), $langIsoCode);
$displayName = $inputOptionTranslator->translate(array('languageList'), $langIsoCode);

$translatedOptionList = $this->objectManager->get('EWW\\Dpf\\Domain\\Model\\InputOptionList');
$translatedOptionList->setDisplayName(implode('', $displayName));
$translatedOptionList->setPid($storagePid);
$translatedOptionList->setSysLanguageUid($installedLanguage->getUid());
$translatedOptionList->setL10nParent($languageOptionList->getUid());
$translatedOptionList->setValueLabelList(implode('|', $valueLabelList));
$this->inputOptionListRepository->add($translatedOptionList);
if (is_array($installedlanguages)) {
foreach ($installedlanguages as $installedLanguage) {
$langIsoCode = $installedLanguage->getLangIsocode();
if (!empty($langIsoCode)) {
// only when an iso code has been configured, a translation dataset is created
if ($inputOptionTranslator->hasTranslation($langIsoCode)) {
// only when a translation exists, a translation dataset is created
$valueLabelList = $inputOptionTranslator->translate($iso6392b->getValues(), $langIsoCode);
$displayName = $inputOptionTranslator->translate(array('languageList'), $langIsoCode);

$translatedOptionList = $this->objectManager->get('EWW\\Dpf\\Domain\\Model\\InputOptionList');
$translatedOptionList->setDisplayName(implode('', $displayName));
$translatedOptionList->setPid($storagePid);
$translatedOptionList->setSysLanguageUid($installedLanguage->getUid());
$translatedOptionList->setL10nParent($languageOptionList->getUid());
$translatedOptionList->setValueLabelList(implode('|', $valueLabelList));
$this->inputOptionListRepository->add($translatedOptionList);

}

}

}
}

Expand Down
9 changes: 4 additions & 5 deletions Classes/Domain/Repository/SysLanguageRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,11 @@ class SysLanguageRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
public function findInstalledLanguages()
{
$result = $this->createQuery();
$result->getQuerySettings()->setRespectStoragePage(false);
$result->getQuerySettings()->setReturnRawQueryResult(true);
$result->getQuerySettings()->setRespectStoragePage(FALSE);
$result->statement('SELECT l.uid,l.pid,l.title,l.flag,i.lg_iso_2 FROM sys_language as l LEFT JOIN static_languages as i ON i.uid = l.static_lang_isocode');

if ($result->execute()) {
foreach ($result->execute() as $language) {
if ($result->execute(TRUE)) {
foreach ($result->execute(TRUE) as $language) {
$sysLanguage = new \EWW\Dpf\Domain\Model\SysLanguage();
$sysLanguage->setUid($language['uid']);
$sysLanguage->setPid($language['pid']);
Expand All @@ -46,7 +45,7 @@ public function findInstalledLanguages()
return $sysLanguages;
}

return null;
return NULL;
}

}
16 changes: 9 additions & 7 deletions Classes/Helper/InputOption/Translator.php
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,15 @@ public function init($inputOptionClass)
}

// load translation data for all other languages
foreach ($languages as $language) {
$langIsoCode = $language->getLangIsocode();

if (!empty($langIsoCode)) {
$local = \EWW\Dpf\Helper\InputOption\Locallang::load($inputOptionClass, $langIsoCode);
if ($local) {
$this->locallang[$language->getLangIsocode()] = $local;
if (is_array($languages)) {
foreach ($languages as $language) {
$langIsoCode = $language->getLangIsocode();

if (!empty($langIsoCode)) {
$local = \EWW\Dpf\Helper\InputOption\Locallang::load($inputOptionClass, $langIsoCode);
if ($local) {
$this->locallang[$language->getLangIsocode()] = $local;
}
}
}
}
Expand Down
1 change: 1 addition & 0 deletions ext_emconf.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
'constraints' => array(
'depends' => array(
'typo3' => '6.2.0-6.2.99',
'static_info_tables' => '6.3.0'
),
'conflicts' => array(
),
Expand Down

0 comments on commit 0376746

Please sign in to comment.