Hallo Leute,
ich habe in einer meiner Extensions Länder-Objekte, die auch eine zugeordnete, englische Übersetzung aufweisen.
Wenn ich nun einen Link ausgebe mittels
<f:link.action action="list" controller="Tour" pageUid="54" arguments="{country: country}" absolute="1">{country.name}</f:link.action>
dann wird mir als Inhalt des A-Tags zwar die englische Übersetzung angezeigt (z.B. Austria). Der Link verweist jedoch auf www.domain.com/en/countries/country/oesterreich/ - und nicht /austria/, was letztendlich dazu führt, dass in der Listenansicht die deutschen Einträge geladen werden.
Habe schon im CountryRepository mit setRespectSysLanguage(true/false) gespielt, ändert leider nichts an der Ausgabe.
Hat jemand eine Idee, woran das liegt?
Nur so eine Idee...
Wenn ichs recht verstehe, bezieht sich das Country-Objekt in deinem Beispiel auf Österreich.
Und dessen Name lautet hier 'Austria'. Wenn dieses (Austria)-Objekt immernoch das selbe ist, wie 'Oesterreich' - und jetzt nur einen anderen Namen hat - könnte das ein Grund für dieses Verhalten sein.
Ich weiß ja nicht genau, wie du diesen Link dann generierst, aber vielleicht hilft es, den country.name als Argument zu übergeben.
Es gibt eine Seite auf der alle Touren aufgelistet werden. In einer Sidebar habe ich eine Liste von Links über die ich die Touren nach Land filtern möchte.
http://www.domain.com/en/countries/country/xxx wird von realurl generiert und steht für http://www.domain.com/index.php?id=3&L=1&tx_fustoursys_tour[controller]=Tour&tx_fustoursys_tour[action]=list&tx_fustoursys_tour[country]=7
Der Controller filtert dann wie folgt die Touren die angezeigt werden sollen:
/**
* action list
*
* @return void
*/
public function listAction(\fus\FusToursys\Domain\Model\Country $country = null) {
if($country != null) {
$tours = $this->tourRepository->findByCountry($country);
} else {
$tours = $this->tourRepository->findAll();
}
$this->view->assign('tours', $tours);
}
Österreich hat in der Datenbank z.B. die UID 1, und die Übersetzung "Austria" die UID 25. Die Übersetzung ist auch richtig zugeordnet.
Wenn ich also jetzt auf einer der englischen Seiten bin, sollten doch eigentlich wenn ich $countryRepository->fetchAll(); aufrufe, nur die englischen Objekte geladen werden, oder?
Es scheint aber, als würden die deutschen Objekte mit ihren englischen Eigenschaften geladen werden.