Проблема языка Extbase с непереведенными объектами - PullRequest
0 голосов
/ 28 июня 2018

В настоящее время мы не можем найти решение Extbase, которое не соответствует ожиданиям.

В контроллере у нас есть это:

$referenz = $this->referenzRepository->findByUid($this->settings['zentrum']);

Возвращает объект, как и ожидалось. Теперь есть два других языка, где не все переведено и не должно появляться на переведенной странице. Второй набор данных не должен выводиться в переводе, потому что он не переведен:

enter image description here

Тем не менее, он выводится на языке по умолчанию. Мы установили эти глобальные переменные и не можем их изменить по разным причинам.

config.sys_language_mode = ignore
config.sys_language_overlay = hideNonTranslated

Мы попробовали пользовательскую функцию для возврата объекта, но ничего не выводилось:

public function findReferenzByUid($uid)
{
    $query = $this->createQuery();
    $query->getQuerySettings()->setRespectSysLanguage(false);
    $result = $query->matching(
        $query->logicalAnd(
            $query->equals('uid', intval($uid)),
            $query->equals('sys_language_uid', $GLOBALS['TSFE']->sys_language_uid)
        )
    );
    return $query->execute();
}

Как мы могли бы достичь этого? Проблема в том, что это объекты внутри другого объекта. «Материнский» объект переведен, и это правильно.

1 Ответ

0 голосов
/ 16 июля 2018

Я думаю, что в вашей пользовательской функции отсутствует PID. Вы можете попробовать это:

$querySettings = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Typo3QuerySettings');
$querySettings->setRespectStoragePage(FALSE);

// new Storage IDs
$querySettings->setStoragePageIds(array(1, 26, 989));
...