Contao-Camp 2024
Ergebnis 1 bis 29 von 29

Thema: 4.4 - changelanguageNavigation - Hook - Detailseite

  1. #1
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard 4.4 - changelanguageNavigation - Hook - Detailseite

    Hallo,

    ich setze unter Contao 4.4 die Erweiterung ChangeLanguage ein. Bei Wechsel der Sprache auf der Detailseite wird allerdings der Alias in der URL entfernt/bzw. ersetzt. Also aus

    https://<domain>/de/berater/alias.html wird
    https://<domain>/en/consultant.html

    Jetzt habe ich folgendes gefunden, mit dem man das Problem wohl lösen kann:
    https://github.com/terminal42/contao...-url-parameter

    Hat diesen Hook jemand von euch im Einsatz und kann mir ein Beispiel für Contao 4 schicken? Ehrlich gesagt, bin ich ein wenig überfordert, welche Verzeichnisse ich jetzt genau hier angeben soll. Kann ich den Code einfach so übernehmen oder muss ich noch was im Code ergänzen?

    Ansonsten gab/gibt es ja noch die Erweiterung imi_mm_changelanguage. Läuft die Erweiterung noch unter Contao 4 oder gibt es Alternativen?

    Vielen Dank!

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

    Standard

    Zitat Zitat von karo68 Beitrag anzeigen

    A)
    Jetzt habe ich folgendes gefunden, mit dem man das Problem wohl lösen kann:
    https://github.com/terminal42/contao...-url-parameter

    Hat diesen Hook jemand von euch im Einsatz und kann mir ein Beispiel für Contao 4 schicken? Ehrlich gesagt, bin ich ein wenig überfordert, welche Verzeichnisse ich jetzt genau hier angeben soll. Kann ich den Code einfach so übernehmen oder muss ich noch was im Code ergänzen?

    B)
    Ansonsten gab/gibt es ja noch die Erweiterung imi_mm_changelanguage. Läuft die Erweiterung noch unter Contao 4 oder gibt es Alternativen?
    A: Du kannst das z.B. in einem eigenen /src/AppBundle/EventListener ablegen - kommt dann etwas darauf an, welche Contaoversion Du verwendest - und den Hook aufrufen... zudem musst Du in dem Hook Dein MM-Abfragen und den jeweiligen "Schwester-Alias" abfragen und "$newAlias = ..." bestücken - siehe MM-API https://metamodels.readthedocs.io/de...etamodels.html

    B: k.A. - testen...

  3. #3
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard

    A: Du kannst das z.B. in einem eigenen /src/AppBundle/EventListener ablegen - kommt dann etwas darauf an, welche Contaoversion Du verwendest - und den Hook aufrufen
    Ich setze Contao 4.4.47 ein. Wo genau muss ich den Hook hier ablegen? Unter "vendor" oder evtl. "system/modules"?

    zudem musst Du in dem Hook Dein MM-Abfragen
    Wie funktioniert das genau?

    und den jeweiligen "Schwester-Alias" abfragen und "$newAlias = ..." bestücken
    Ist mit "Schwester-Alias" der Alias der übersetzten Seite gemeint? Mein Alias bleibt immer gleich, da es sich bei mir um Namen von Personen handelt. Im Prinzip müsste bei mir nur aus
    https://<domain>/de/berater/max-mustermann.html
    folgendes gemacht werden:
    https://<domain>/en/consultant/max-mustermann.html

    B: k.A. - testen...
    habe ich. Funktioniert bei mir nicht. Habe es unter system/modules abgelegt und die initconfig.php angepasst. Vielleicht mache ich auch was falsch. Zur Konfiguration von imi_mm_changelanguage steht folgendes:
    The autodetection can be overwritten via $GLOBALS['TL_CONFIG']['mm_changelanguage'] in initconfig.php. It must be an array with $metamodelName => $attributeName.
    Im Contao-Wiki steht zur initconfig.php: "DEPRECATED"..."Sollte man nicht mehr verwenden, lieber ein app-bundle bauen und saubere services."
    Aber funktionieren müsste es dann wohl noch.
    Ich schreibe mal den Entwickler an. Vielleicht passt er das Modul ja für Contao 4 an.


    Vielleicht könnte jemand ein Beispiel für so einen Hook für Contao 4 hier posten. Das wäre super.

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

    Standard

    Zitat Zitat von karo68 Beitrag anzeigen
    Ist mit "Schwester-Alias" der Alias der übersetzten Seite gemeint? Mein Alias bleibt immer gleich, da es sich bei mir um Namen von Personen handelt. Im Prinzip müsste bei mir nur aus
    https://<domain>/de/berater/max-mustermann.html
    folgendes gemacht werden:
    https://<domain>/en/consultant/max-mustermann.html
    reicht es da nicht in den Seiteneinstellungen das "GET-Parameter behalten" (oder so Ähnlich) zu aktivieren?

  5. #5
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    reicht es da nicht in den Seiteneinstellungen das "GET-Parameter behalten" (oder so Ähnlich) zu aktivieren?
    Es gibt ein Feld "Query-Parameter beibehalten", s. Anhang.

    Aber was muss ich denn da reinschreiben, damit es funktioniert? Theoretisch bräuchte ich dann ja den aktuellen Alias, richtig? Aber den könnte ich ja auch nicht einfach an die ersetzte URL hängen.
    Aus
    https://<domain>/de/berater/max-mustermann.html
    wird ja
    https://<domain>/en/consultant.html
    Angehängte Grafiken Angehängte Grafiken

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

    Standard

    probiers mal mit deinem ursprünglichen Attributnamen oder eben mit auto_item

  7. #7
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    probiers mal mit deinem ursprünglichen Attributnamen oder eben mit auto_item
    Also auf der englischen Weiterleitungsseite (die englische Seite für die Detailansicht) in das Feld entweder auto_item oder mm_alias eingeben?

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

    Standard

    wenn der Spaltenname für das Attribut mm_alias ist, ja...

  9. #9
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard

    in beiden Fällen verhält es sich wie zuvor.

    Die URL wird von
    https://<domain>/de/berater/max-mustermann.html
    auf
    https://<domain>/en/consultant.html
    umgeschrieben - vice versa

    Ergebnis:
    "There are no items matching your search."

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

    Standard

    Zitat Zitat von karo68 Beitrag anzeigen
    "There are no items matching your search."
    ist logisch, da für den Filter der Wert fehlt...

    ggf. hat noch jemand ein passendes Beispiel oder durch Corona Zeit Dir das einzubauen - ansonsten https://community.contao.org/de/foru...Auftr%C3%A4ge)

  11. #11
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard

    klar, würde ich dann auch bezahlen. Dieser Fall müsste aber doch eigentlich sehr oft auftreten. Immer beim Einsatz von Listen- und Detailseiten. Oder ist das speziell nur bei MetaModels so?

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

    Standard

    kein MM-Problem sondern eher allgemein - da CL das nicht wissen kann, gibt es ja den Hook

  13. #13
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard

    zu dem Thema habe ich gerade noch folgenden Thread aus 2013 gefunden:
    https://community.contao.org/de/show...tioniert-nicht
    Genau der gleiche Fall.

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

    Standard

    korrekt! was möchtes Du damit sagen?

    eine allgemeine Lösung für MM seit dem auch bisher noch keiner als Pull Request zur Verfügung gestellt noch beauftragt bzw. finanziert... aber vielleicht ergibt sich das mal irgendwann

  15. #15
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard

    korrekt! was möchtes Du damit sagen?
    War nur der Vollständigkeit halber als weitere Info in diesem Zusammenhang gedacht. Vielleicht können ja andere mit den Antworten aus dem verlinkten Beitrag wertvolle Infos für sich rausholen.

    eine allgemeine Lösung für MM seit dem auch bisher noch keiner als Pull Request zur Verfügung gestellt noch beauftragt bzw. finanziert... aber vielleicht ergibt sich das mal irgendwann
    Wäre doch auch eine gute Möglichkeit für ein Fundraising.

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

    Standard

    Zitat Zitat von karo68 Beitrag anzeigen
    Wäre doch auch eine gute Möglichkeit für ein Fundraising.
    gern! nur zu... meine Unterstützung hast Du

  17. #17
    Contao-Nutzer
    Registriert seit
    17.10.2014.
    Beiträge
    72

    Standard

    ich habe dazu mal ein issue in unserem Modul eröffnet https://github.com/iMi-digital/imi_m...guage/issues/8

  18. #18
    Contao-Nutzer
    Registriert seit
    17.10.2014.
    Beiträge
    72

    Standard

    Hi!

    ich habe nochmal genauer geguckt. Wir haben das Modul mit MM 2.1.2 und Contao 4.4 im Einsatz.
    Eigentlich müsste es doch gehen.

    du hast in der Privatnachricht geschrieben, dass du

    $GLOBALS['TL_CONFIG']['mm_changelanguage']=['mm_team']['mm_alias'];

    gesetzt hast.

    das sieht falsch aus.

    Wie bindest du denn die Metamodels auf der Seite ein? Eigentlich gibt es ein Autodetect.

    Versuche mal folgendes:

    system/modules/imi_mm_changelanguage/classes/ImiMMChangeLanguageObserver.php:136



    Code:
    		// allow overwriting of the auto-detected definition
    		if (isset($GLOBALS['TL_CONFIG']['mm_changelanguage'])) {
    			$currentMetaModels = array_merge($currentMetaModels, $GLOBALS['TL_CONFIG']['mm_changelanguage']);
    		}
    
    		var_dump($currentMetaModels); die();
    und guck was die Ausgabe ist, wenn du eine MetaModels seite aufrufst.

    Grüße,

    Alex

  19. #19
    Contao-Nutzer
    Registriert seit
    17.10.2014.
    Beiträge
    72

    Standard

    du benötigst vermutlich sowas - falls die automatische Erkennung nicht funktioniert (diese basiert auf dem auto_item)

    Code:
            $GLOBALS['TL_CONFIG']['mm_changelanguage']['mm_team'] = 'mm_alias';
    Ich gehe davon aus, dass mm_team dein Metamodel Name ist und mm_alias der übersetzte Alias (translated Attribut)

    EDIT:

    Die automatische Erkennung sollte funktionieren, wenn du das auto_item entsprechend gesetzt hast:

    todo.png
    Geändert von s3lf (03.04.2020 um 11:14 Uhr)

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

    Standard

    Du könntest auch das Template "nav_default" für die CL-Ausgabe "hacken" - da bei Dir

    Im Prinzip müsste bei mir nur aus
    https://<domain>/de/berater/max-mustermann.html
    folgendes gemacht werden:
    https://<domain>/en/consultant/max-mustermann.html
    nur das auto_item-Value übergeben werden muss, kannst Du das für die paar Seiten abfangen und "ankleben"


    ... frage mich dennoch, warum der Wert der selbe ist bei translated-Alias ... hmm??

  21. #21
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard

    Du könntest auch das Template "nav_default" für die CL-Ausgabe "hacken"
    danke für den Tipp. Was ist mit "CL-Ausgabe" gemeint?

    ... frage mich dennoch, warum der Wert der selbe ist bei translated-Alias ... hmm??
    Verstehe die Frage nicht. Der Alias wird nicht übersetzt.

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

    Standard

    CL: Change Language - nicht Champions League

    ... dachte, hätte was von translated Alias gelesen...

  23. #23
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard

    mal eine ganz andere Frage. Wie sähe es denn eigentlich aus, wenn ich anstatt "CL", "i18nl10n" als Übersetzungserweiterung einsetzen würde. Würde es da beim Sprachwechsel auf der Detailseite die gleichen Probleme geben? Oder hat es damit nichts zutun bzw. muss MM immer mit "CL" laufen?

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

    Standard

    es gibt auch noch andere Erweiterungen für den Sprachenwechsel - weder MM ist auf eine Erweiterung abgestimmt noch ein anderes Tool auf MM... dafür gibt es die Hooks zum "Unterhalten untereinander"

    mit i18nl10n oder was anderem wirst Du wohl "vom Regen in die Traufe" kommen

  25. #25
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard

    Ich gehe davon aus, dass mm_team dein Metamodel Name ist und mm_alias der übersetzte Alias (translated Attribut)
    mein Alias bleibt gleich. Der wird nicht übersetzt, da es sich um Namen von Personen handelt.

    Die automatische Erkennung sollte funktionieren, wenn du das auto_item entsprechend gesetzt hast:
    wird erkannt. Der Dump gibt folgendes aus:
    array(1) { ["mm_team"]=> string(8) "mm_alias" }

  26. #26

  27. #27
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    prima!
    ja, aber das Verhalten ist jedoch immer noch wie vorher :-)
    Bin mit User "s3lf" im Gespräch. Bei Erfolg, werde ich die Lösung dann hier posten.

  28. #28
    Contao-Nutzer
    Registriert seit
    17.10.2014.
    Beiträge
    72

    Daumen hoch

    Es lag letztendlich daran, dass karo68's Metamodels gar keine Übersetzten Aliase haben. Dieser Fall ist jetzt in der 2.0.0 / 2.0.1 des Moduls imi_mm_changelanguage auch supported.

  29. #29
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard

    Zitat Zitat von s3lf Beitrag anzeigen
    Es lag letztendlich daran, dass karo68's Metamodels gar keine Übersetzten Aliase haben. Dieser Fall ist jetzt in der 2.0.0 / 2.0.1 des Moduls imi_mm_changelanguage auch supported.
    Noch ein Nachtrag:
    imi_mm_changelanguage kann jetzt auch über den contao-manager installiert werden. Somit muss keine manuelle Installation oder SSH-Aufruf mehr erfolgen. Getestet mit Contao 4.4.47

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
  •