Contao-Camp 2024
Ergebnis 1 bis 12 von 12

Thema: Contao 3.1.1, changelanguage 2.2.0: falsche alternative Artikel URL

  1. #1
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard Contao 3.1.1, changelanguage 2.2.0: falsche alternative Artikel URL

    Ich habe zB einen Artikel mit alias "foo", dessen Vollansicht unter folgender URL dargestellt wird:
    /de/lorem/articles/foo.html

    Ein zweiter Artikel im englischen Sprachbaum hat diesen Artikel als Fallback-Artikel in den Eigenschaften definiert. Dieser hat das Alias "foo-1" bspw. Der Englische Artikel wird dann unter dieser URL dargestellt:
    /en/ipsum/articles/foo-1.html

    Problem ist jetzt, dass die URL im language switcher auf den Fallback Artikel (oder umgekehrt) immer falsch ist. Bin ich im englischen Artikel, zeigt der switcher (bzw. das alternate im head) auf:
    /de/lorem/articles/foo-1.html
    Die Seite aus dem deutschen Sprachbaum stimmt zwar ("lorem"), das Alias jedoch nicht.

    Umgekehrt zeigt der switcher im deutschen Artikel auch nur auf folgende URL:
    /en/ipsum/articles/foo.html
    Die Seite aus dem englischen Sprachbaum, wo sich der Artikel befindet, stimmt, das Alias wiederum nicht.


    Was könnte hier schief laufen?

  2. #2
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    hört sich nach einem Bug an, könntest du ein Ticket bei GitHub machen? Am besten mit Link auf deine Beschreibung hier.
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Wenn du einen Link auf das Repository von changelanguage hast, gerne (find' es momentan nicht...). Werd's mir heut aber auch selbst mal im Source ansehen, was da los sein könnte.

  4. #4
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.548
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Thx, hab' das Problem auch schon behoben. Folgende Dinge in ChangeLanguage::translateArticles() waren falsch:
    • Die Funktion greift auf $arrParams['url']['article'] zu, statt $arrParams['url']['articles']
    • Das SQL statement darin war falsch (was wahrscheinlich nie aufgefallen ist, wegen dem vorigen Fehler)
    • Die Funktion berücksichtigt nicht den Switch von der Main Language auf die andere Language. Also Wenn de Fallback ist, kann von einem Article in de nicht auf en geswitched werden.

    Fix:
    PHP-Code:
        public function translateArticles($arrParams$strLanguage$arrRootPage)
        {
            if (
    $arrParams['url']['articles'] != '')
            {
                global 
    $objPage;

                
    // get gurrent article properties
                
    $currentArticle $this->Database->prepare("SELECT id, languageMain FROM tl_article WHERE pid = ? AND alias = ?")->execute($objPage->id$arrParams['url']['articles']);

                
    // if languageMain is zero, search for other article referencing current article
                
    if ($currentArticle->languageMain == 0)
                {
                    
    $otherArticle $this->Database->prepare("SELECT id, alias FROM tl_article WHERE languageMain = ?")->execute($currentArticle->id);
                }
                else
                {
                    
    $otherArticle $this->Database->prepare("SELECT id, alias FROM tl_article WHERE id = ?")->execute($currentArticle->languageMain);
                }

                if (
    $otherArticle->numRows)
                {
                    
    $arrParams['url']['articles'] = $otherArticle->alias $otherArticle->alias $otherArticle->id;
                }
            }

            return 
    $arrParams;
        } 
    Ich poste es dann auch im repository (oder finde zuerst raus, wie man PRs macht )
    Geändert von Spooky (25.07.2013 um 12:04 Uhr) Grund: richtige version des fix

  6. #6
    Contao-Nutzer Avatar von sizta7
    Registriert seit
    02.09.2009.
    Beiträge
    194

    Standard Problem mit /articles/ und changelanguage

    Hallo, bin evtl. auf ein ähnliches Problem gestossen (Contao 3.2.16 und changelanguage 2.2.7 Built 1)

    Ich habe hier eine mehrsprachige Seite, bei der ich beim Sprachwechsel immer die Meldung "Sorry, item "xyz" does not exist" bekomme.
    Allerdings passiert das nur dann, wenn man die Version des Artikels umswitchen will, die über den Artikelteaser aufgerufen wurde.
    (Die URL ist enthält dann das /articles/ Fragment.)
    Wird der Artikel über die Subnavigation aufgerufen, läuft es.
    Liegt das an diesem articles/ Fragment?

    @spooky: Welche Datei hast Du da gefixt? Hast Du mir einen Pfad? Oder gibts inzwischen eine andere Lösung?

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Hm, ob das jetzt mit dem ursprünglichen Problem zusammenhängt kann ich nicht sagen. Jedenfalls war mein "fix" auch nicht komplett (würde nur bei insgesamt zwei Sprachen funktionieren, wenn überhaupt). Siehe dazu: https://github.com/terminal42/contao...nguage/pull/10

    Dort wird auch empfohlen, den 3.0.0 release branch zu verwenden. Das könntest du auch mal ausprobieren.
    Geändert von Spooky (02.12.2014 um 17:52 Uhr)

  8. #8
    Contao-Nutzer Avatar von sizta7
    Registriert seit
    02.09.2009.
    Beiträge
    194

    Standard

    Danke Dir für Deine Expressantwort ;-)

    Also ich habe den 3.0.0 release branch mal hochgeladen, aber es hat leider nichts gebracht.
    Was könnte ich sonst noch versuchen?

  9. #9
    Contao-Nutzer
    Registriert seit
    29.05.2017.
    Beiträge
    17

    Standard Falsche Alternate Links auf der Startseite

    Hallo Liebe Community,

    die Startseite zeigt bei mir auf /de/ in dem Alternate Link wird /de/home.html angezeigt.

    Ich verwende auch einen Redirect 301 von /de/home.html auf /de/
    Auch die Links zeigen alle noch auf /de/home.html

    In der Alias kann man ja leider nicht nur / schreiben.
    Jemand von euch eine Idee?

  10. #10
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Was hast du jetzt als Alias eingetragen?

  11. #11
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das Alias der Startseite sollte "index" sein.
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  12. #12
    Contao-Nutzer
    Registriert seit
    29.05.2017.
    Beiträge
    17

    Daumen hoch Gelöst

    Vielen Dank!

    Alias auf index war die Lösung

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
  •