hi, gibt es hierzu mittlerweile eine lösung? ich hänge aktuell an dem selben 
problem und wüsste gerne eine lösung.

danke und lg, volker.


Anscheinend ist die Liste „typo3 v4 MVC“ tot – jedenfalls antwortet da
niemand mehr? Deswegen möchte ich meine Frage hier nochmal stellen.

Es gibt den extbase-Bug . Dadurch ist
es nicht möglich mit setRespectSysLanguage(FALSE) eine eigene Übersetzung zu
erzwingen. Ich aber benötige auf französischen Seiten englische Elemente.
Komischerweise funktioniert dies in meinem Repository mit der LIST-Funktion
gut. Doch rufe ich hieraus ein DETAIL auf, so wird mir statt des gewünschten
englischen Objektes das deutsche Objekt ausgeliefert OBWOHL ich explizit
nach t3_origuid und sys_language_uid suche und auch finde. Irgendwie kommt
da immernoch das languageOverlay dazwischen. Das möchte ich abschalten,
bitte.

Meine Versuche dies mittels der neuen Methoden
$query->getQuerySettings()->setLanguageMode('ignore'); und
$query->getQuerySettings()->setLanguageOverlayMode(TRUE); zu tun blieben
erfolglos.

Hier mal die zwei Methoden (findByProperties funktioniert / findByUidNew
funktioniert nicht)

class HotellistRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
{

                public function findByUidNew($hotel){

                               $query = $this->createQuery();

$query->getQuerySettings()->setRespectStoragePage(FALSE);

                               if($GLOBALS['TSFE']->sys_language_uid != 0){

$query->getQuerySettings()->setRespectSysLanguage(FALSE);

$query->getQuerySettings()->setSysLanguageUid(1);

//$query->getQuerySettings()->setLanguageMode('ignore');

//$query->getQuerySettings()->setLanguageOverlayMode(TRUE);

                                               $query = $query->matching(

$query->logicalAnd(

$query->equals('t3_origuid',$hotel),

$query->in('sys_language_uid',array(1))

                                                               )

                                               );

                               }else{

                                               $query = $query->matching(

$query->equals('uid',$hotel)

                                               );

                               }

return $query->execute()->getFirst();
                }

                public function
findByProperties($order,$type,$pidstorage,$classification = NULL,$property =
NULL,$htype = NULL,$name = NULL){

                               $orderings = array($type => $order ==
'ORDER_ASCENDING' ?

\TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING :

\TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING);

                               $query = $this->createQuery();

                               $constraint = array();

                               /* Wenn Englisch, Französisch oder
Niederländisch, zeige die englischen Inhalte */

                               if($GLOBALS['TSFE']->sys_language_uid != 0){

$query->getQuerySettings()->setRespectSysLanguage(FALSE);

$query->getQuerySettings()->setSysLanguageUid(1);

                                               $langsearch =
$query->logicalAnd($query->in('sys_language_uid',array(1)));

                                               $constraint[] = $langsearch;

                               }

                               …

                               /*BUILD TOGETHER*/

                               if(!empty($constraint))
$query->matching($query->logicalAnd($constraint));

                               $query->setOrderings($orderings);

                               return $query->execute();

                }

}
----------------------------------------------------


_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an