Contao-Camp 2024
Ergebnis 1 bis 4 von 4

Thema: ChangeLanguage gibt Alternate-Link auf Nachrichtendetailseiten nicht richtig aus

  1. #1
    Contao-Nutzer
    Registriert seit
    10.05.2016.
    Beiträge
    8

    Fehler ChangeLanguage gibt Alternate-Link auf Nachrichtendetailseiten nicht richtig aus

    Hallo,

    ich habe Contao 3.5.27 mit ChangeLanguage 3.1.3 im Einsatz. Wenn in den Einstellungen "Auto_Item aktivieren" angehakt ist, wird auf Nachrichtendetailseiten der Alternate-Link der aktuellen Sprache nicht richtig ausgegeben. Die URL wird mit seitenalias.html statt /seiten-alias/nachrichten-alias.html zusammengebaut.

    Beispiel:
    Ich bin auf der englischen Nachrichtendetailseite mit aktiviertem 'Auto_Item'. Ausgabe:

    <link rel="alternate" hreflang="en" href="http://www.example.com/en/news/article.html">
    <link rel="alternate" hreflang="de" href="http://www.example.com/de/aktuelles/artikel/nachricht1.html">

    Richtig wäre:
    <link rel="alternate" hreflang="en" href="http://www.example.com/en/news/article/news1.html">
    <link rel="alternate" hreflang="de" href="http://www.example.com/de/aktuelles/artikel/nachricht1.html">

    Ist das ein Bug oder liegt das an irgendeiner Einstellung?

    Ohne Auto_Item klappt es übrigens ganz gut:
    <link rel="alternate" hreflang="en" href="http://www.example.com/en/news/article/items/news1.html">
    <link rel="alternate" hreflang="de" href="http://www.example.com/de/aktuelles/artikel/items/nachricht1.html">


    Grüße,
    Sebastian

  2. #2
    Contao-Nutzer
    Registriert seit
    10.05.2016.
    Beiträge
    8

    Standard

    Da das Problem ja nur den Alternate-Link der aktuell geöffneten Nachrichten-Seite betrifft, habe ich mir nun damit beholfen, den href-Eintrag dieses Links mit der aktuellen URL zu überschreiben. Das Template sieht nun so aus:

    <?php foreach ($this->links as $link): ?>

    <?php if ($link['language'] == $GLOBALS['TL_LANGUAGE']) :
    $link['href'] = $this->Environment->base.$this->Environment->requestUri;
    endif; ?>

    <link rel="alternate" hreflang="<?= $link['language'] ?>" href="<?= $link['href'] ?>">
    <?php endforeach; ?>

    Dieser Workaround ist sicher nicht die beste Lösung, aber er funktioniert. Wenn jemand eine bessere Lösung hat, freue ich mich davon zu hören.

  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 dieser Fehler reproduzierbar ist, würde ich das als Ticket melden.

  4. #4
    Contao-Nutzer
    Registriert seit
    10.05.2016.
    Beiträge
    8

    Standard

    Ok, das habe ich gemacht. Danke für den Hinweis

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
  •