[BUGFIX] Fix Extbase language fallback in query parser 62/31862/2
authorHelmut Hummel <helmut.hummel@typo3.org>
Sun, 27 Jul 2014 08:55:35 +0000 (10:55 +0200)
committerHelmut Hummel <helmut.hummel@typo3.org>
Sun, 27 Jul 2014 10:56:10 +0000 (12:56 +0200)
commit7da90b55c0efdf0e0d252a297c34ff66290fb1aa
treec3132263d3a8ec630901d1b744dc78a8608928e9
parent951d2d14104ab69ded85daf5544a4bc42f8759bc
[BUGFIX] Fix Extbase language fallback in query parser

Currently when TYPO3 is configured to do language fallback
and a record is translated in language A, but not
in language B and language B is requested, then this
record is excluded.

This is the case because of a wrong subselect condition.

Extbase selects records in the requested translation
or if no translation is available in the default language.
However the check if translation is available looks
for *any* translation not only for a translation in the
requested language. Thus the record from the default
language is not selected at all if there are translations
available in any other language.

Solution is to change the subselect condition to check
for the currently requested language.

Releases: 6.1, 6.2, master
Resolves: #60613
Change-Id: I8ebd68e1f5741d3557910ae2f8c2d19474548d01
Reviewed-on: http://review.typo3.org/31862
Reviewed-by: Helmut Hummel <helmut.hummel@typo3.org>
Tested-by: Helmut Hummel <helmut.hummel@typo3.org>
typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbQueryParser.php
typo3/sysext/extbase/Tests/Functional/Persistence/Fixtures/translated-posts.xml [new file with mode: 0644]
typo3/sysext/extbase/Tests/Functional/Persistence/TranslationTest.php [new file with mode: 0644]
typo3/sysext/extbase/Tests/Unit/Persistence/Generic/Storage/Typo3DbQueryParserTest.php