[Frage] Fluid Link hat richtige Sprache aber falschen Link

  • markusstrauss markusstr...
    TYPO3-Anwärter
    0 x
    6 Beiträge
    0 Hilfreiche Beiträge
    21. 10. 2013, 12:12

    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

    1. <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 http://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?


  • 1
  • harald1972 harald197...
    Sternenflotten-Admiral
    0 x
    198 Beiträge
    13 Hilfreiche Beiträge
    21. 10. 2013, 12:49

    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.

  • markusstrauss markusstr...
    TYPO3-Anwärter
    0 x
    6 Beiträge
    0 Hilfreiche Beiträge
    21. 10. 2013, 16:39

    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:

    1. /**
    2. * action list
    3. *
    4. * @return void
    5. */
    6. public function listAction(\fus\FusToursys\Domain\Model\Country $country = null) {
    7. if($country != null) {
    8. $tours = $this->tourRepository->findByCountry($country);
    9. } else {
    10. $tours = $this->tourRepository->findAll();
    11. }
    12.  
    13. $this->view->assign('tours', $tours);
    14. }

    Ö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.

  • 1