2016-07-20 33 views
1

Ich entwickle eine lokalisierte Typo3-Erweiterung und ich habe das Repository und die Modelle erstellt, wobei ich derzeit jede Sprachversion des Inhalts auf seiner eigenen Sprach-ID-Seite im Frontend anzeigen kann.TYPO3: Wie kann ich lokalisierten Inhalt für mehrere Sprachen auf derselben Seite verwenden?

Ich muss jedoch einige der übersetzten Eigenschaften (Inhaltsfelder) in einer einzigen Webseite anzeigen, aber ich weiß nicht, noch bin ich in der Lage, in anderen Quellen zu finden, wie der gesamte übersetzte Inhalt in meine Vorlagenansicht oder wie zu behandeln um die Variablen zuzuordnen.

Beispiel:

In meinem Controller-ist:

$test = $this->testRepository->findAll(); 
$this->view->assign('test', $test); 

Für welche ich zeigen den Inhalt in meiner Vorlage als:

{test.title} 

Nun Typo3 macht die Arbeit und für EN Es zeigt die englische Version von 'title' an, für DE die deutsche Version usw., aber alles auf separaten Seiten.

Wie kann ich alle Sprachversionen von 'test.title' nehmen und auf der gleichen Seite anzeigen?

Vielen Dank

Antwort

1

Nur eine Idee, ich habe es noch nicht getestet.

in Ihrem Repository, legen Sie diese Funktion:

public function initializeObject() { 
    $querySettings = $this->createQuery()->getQuerySettings(); 
    $querySettings->setRespectSysLanguage(false); 
    $querySettings->setLanguageMode('ignore'); 
    $this->setDefaultQuerySettings($querySettings); 
} 

Wenn Sie die Sprache nicht Filterung in Ihrer ganzen Ausdehnung zu ignorieren, nur um die Abfrageeinstellungen für eine einzelne Abfrage nur ändern.

Jetzt sollten Sie alle Übersetzungen auf einmal für Ihre Abfrage erhalten. Machen Sie Ihre eigene Filterung von Sprachen mit

$query->matching($query->equals('sysLanguageUid', 1)); 

Vergessen Sie nicht sysLanguageUid mit Getter und Setter-Funktionen in Ihrem Modell zu definieren.

+0

Hört sich gut an. – j4k3