Contao-Camp 2024
Ergebnis 1 bis 7 von 7

Thema: Language switch mit Meta Models?

  1. #1
    Contao-Nutzer
    Registriert seit
    27.05.2014.
    Beiträge
    119

    Standard Language switch mit Meta Models?

    Hallöchen nochmal miteinander,

    Ich habe von Terminal42 contao-changelanguage zum bequemeren managen von mehreren Sprachen installiert und frage mich gerade, wie ich ein Meta-Model im Frontend über das Frontend-Widget ändere, ohne, dass ich die aktuelle Query verliere?

    Ich habe beispielsweise:

    Code:
    /de/gebrauchtmaschinen/details/produkt_produktnummer
    Wechsle ich auf Englisch, dann geht der hintere Teil verloren und ich habe nur noch:
    Code:
    /de/gebrauchtmaschinen/details/
    Ich habe in der Seitenstruktur folgende Einstellung gefunden:


    Bin mir aber nicht sicher, was genau da rein muss. Vielleicht kennt das jemand?

  2. #2
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    changelanguage hat natürlich keine Idee, wie der Parameter für die "Schwesterseite" aussehen soll - wie es bei dir aussieht, verwendest du den auto_item

    ob das noch geht https://github.com/iMi-digital/imi_mm_changelanguage, musst Du testen

    ich schreibe mir einen eigenen Hook für changelanguage und hänge den Parameter für die andere Sprache an

  3. #3
    Contao-Nutzer
    Registriert seit
    27.05.2014.
    Beiträge
    119

    Standard

    Schaue ich mir gleich an, danke.

    auto_item ist aktiviert, ich habe lediglich zwei verschiedene Rendereinstellungen benutzt, eine fürs Deutsche und eine fürs Englische (Weil Kontaktformulare über Insert-Tags eingebunden werden, die natürlich auch ihre eigene Sprache haben sollten)

    EDIT: Sei inkompatibel laut Manager, lässt sich nicht installieren.

    Ich schaue mal, was sich so mit den Hooks machen lässt.

  4. #4
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    was ist, wenn Du bei #1 das "auto_item" als Parameter einsetzt? geht natürlich nur, wenn der Wert in beiden Sprachen identisch ist - z.B. bei übersetztem Alias kommt man um den Hook nicht drumrum

  5. #5
    Contao-Nutzer
    Registriert seit
    27.05.2014.
    Beiträge
    119

    Standard

    Du meinst so?



    Hatte ich gestern bereits probiert, da passiert gar nichts. Als Filter habe ich folgendes drin: https://puu.sh/D2GeP/72cda7c927.png

    EDIT: Zu den Hooks:
    Add your listener class and method [...] in your bundle's 'Resources/contao' folder
    Wo genau erstelle ich denn jetzt genau welche Datei mit welcher Endung? Oder ist damit die Erweiterung selbst gemeint? Wir hier von /vendor/metamodels/core/src/CoreBundle/Contao/Hooks/ oder? Geschieht das im CoreBundle oder in einem Unterbundle? Ich habe attribute_alias zur URL-Bestimmung genutzt, kommt es dort rein? Stehe etwas auf dem Schlauch. Und selbst, was dann? Erstelle ich dann eine "changelanguageNavigation.php" in diesem Ordner mit dem Inhalt
    Code:
    $GLOBALS['TL_HOOKS']['changelanguageNavigation'][] = [
        'vendor\metamodels\core\src\CoreBundle\Contao\Hooks\ChangelanguageNavigationListener',
        'onChangelanguageNavigation'
    ];
    Muss dann in dem Feld dann noch überhaupt etwas ausgefüllt werden bei den Query-Parametern oder würde das dann von alleine laufen? Wäre das Update-Sicher oder müsste das woanders gemacht werden? So viele Fragen...

    EDIT2: Ach von da aus geht es ja noch weiter mit "Rewriting an URL parameter". Sehe ich das richtig, ich mache eine "eigene" Extension dafür?
    Code:
    Vendor\Extension\EventListener\ChangelanguageNavigationListener.php
    Oder gehört das tatsächlich in den MetaModels-Ordner? Wenn ich bloß wüsste, WO ich was machen müsste, würde ich ja herumprobieren
    Geändert von d33eniz (20.03.2019 um 15:45 Uhr)

  6. #6

  7. #7
    Contao-Nutzer
    Registriert seit
    27.05.2014.
    Beiträge
    119

    Standard

    Ich baue also einfach die Extension, die nicht mehr kompatibel ist, selbst nach, ja? Nagut, dann versuchen wir es mal.

    Alternativ wäre es einfacher, für die Detailansicht ein eigenes Seitenlayout zu definieren, dort das Frontend-Modul mit etwas PHP selber nachzukonstruieren. Ich meine, da muss nur ein /de/ durch ein /en/ ersetzt werden, das Ende der URL bleibt bestehen, nur der mittlere Teil wird auf einer anderen Sprache sein.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •