Contao-Camp 2024
Ergebnis 1 bis 19 von 19

Thema: Default Fallback-Seite für Events/Nachrichten, wenn kein Äquivalent in anderer Sprach

  1. #1
    Contao-Nutzer Avatar von Joern
    Registriert seit
    14.09.2018.
    Beiträge
    130

    Standard Default Fallback-Seite für Events/Nachrichten, wenn kein Äquivalent in anderer Sprach

    Hallo,

    nachdem es auf meiner Webseite schon einen Kalender in Deutsch gibt, habe ich jetzt auch einen Englischen Kalender angelegt und angefangen, einzelne Termine ins Englische zu übersetzen.

    Dabei ist mir aufgefallen, daß bei den Terminen, wo es keine Übersetzung gibt, direkt auf die Seite des Eventlesers der anderen Sprache verlinkt wird. Das ist unschön, da es entweder eine leere Seite ohne sinnvollen Eintrag gibt oder eine 404 Meldung, je nachdem, was im Modul Event-Leser konfiguriert ist.

    Wie kann ich erreichen, daß stattdessen auf die übergeordnete Ebene in der anderen Sprache, in meinem Fall den Kalender (Event List), verlinkt wird? In der Breadcrum-Navigation wird dieser als übergeordnete Seite auch korrekt angezeigt bei Aufruf eines Termins mit dem Event-Leser.

    Den gleichen Effekt habe ich auch bei Nachrichtenarchiven, sobald eine Nachricht kein fremdsprachiges Äquivalent hat. Hier lande ich ebenfalls auf der Seite des Nachrichten-Lesers anstelle auf der Übersichtsseite mit den verfügbaren Nachrichten.

    Wer kann mir hier weiterhelfen?

    Jörn
    Geändert von Spooky (22.04.2019 um 14:01 Uhr) Grund: fixed typo in title

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

    Standard

    Moderation: Thema in das richtige Unterforum verschoben.

    Außerdem bitte immer die genaue Contao und Extension Version angeben.

  3. #3
    Contao-Nutzer Avatar von Joern
    Registriert seit
    14.09.2018.
    Beiträge
    130

    Standard

    Contao 4.7.4
    changelanguage 3.1.11

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

    Standard

    Ich würde das als Ticket auf GitHub posten. Wenn ein Nachrichtenartikel kein Pendant hat, dann sollte der Sprachenwechsler (inkl. Meta Tags) nicht ausgegeben werden, da der Nachrichtenartikel ja dann nur für sich steht.

  5. #5
    Contao-Fan Avatar von lomex
    Registriert seit
    03.07.2009.
    Ort
    Werne
    Beiträge
    791
    User beschenken
    Wunschliste

    Standard

    Ich habe auch immer (bis Heute) mit einer eigenen Seite für den News-Reader gearbeitet. Ich glaube, früher konnte man keinen News-Reader in der News-Liste angeben? Nur im News-Archiv?

    Jedenfalls kann man ja jetzt (seit wann?) in der News-Liste auch einen News-Reader angeben. Wenn also kein Beitrag übergeben wird, dann wird die Liste angezeigt. Also schonmal keine Fehlerseite. Und da die englische News-Liste in der Seitenstruktur mit der deutschen News-Liste "verknüpft" ist, klappt der Fallback (gerade getestet).

    Bei den Events läuft es ja genauso, oder?

    a) Kalender Weiterleitung auf Event-Liste
    b) Event-Liste mit Angabe eines Event-Readers

    Wenn die Event-Liste ein deutsches Event im zugeordneten Event-Reader darstellt, es aber kein engl. Event gibt, wird zur engl. Event-Liste geleitet und entsprechend alle Events aufgelistet.

    Das Ausblenden des Sprachenwechslers auf bestimmten Seiten finde ich nicht so schön. Das ist nicht konsistent. Mal abgesehen davon kann man das doch im Modul einstellen? Dann tritt genau dieser Fall auf (in meinem Fall getestet mit deutscher Nachricht ohne englisches Gegenstück, dann wird EN im Sprachenwechsler nicht angezeigt)

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

    Standard

    Ah wenn das schon einstellbar ist, erübrigt es sich natürlich .

  7. #7
    Contao-Nutzer Avatar von Joern
    Registriert seit
    14.09.2018.
    Beiträge
    130

    Standard

    Hallo lomex, vielen dank für die Rückmeldung. Die Einstellungen hatte ich schon diverse Male alle durchgeschaut, aber die Möglichkeit, im Modul News-Liste bzw. Event-Liste einen Leser mit anzugeben, hatte ich bisher erfolgreich übersehen.

    Bisher verwende ich getrennte Seiten für die Liste und den Reader. Dadurch kann ich auch unterschiedliche zusätzliche Inhaltselemente auf der Seite mit der Liste und der Seite mit dem Reader verwenden.

    Zitat Zitat von lomex Beitrag anzeigen
    Ich habe auch immer (bis Heute) mit einer eigenen Seite für den News-Reader gearbeitet. Ich glaube, früher konnte man keinen News-Reader in der News-Liste angeben? Nur im News-Archiv?

    Jedenfalls kann man ja jetzt (seit wann?) in der News-Liste auch einen News-Reader angeben. Wenn also kein Beitrag übergeben wird, dann wird die Liste angezeigt. Also schonmal keine Fehlerseite. Und da die englische News-Liste in der Seitenstruktur mit der deutschen News-Liste "verknüpft" ist, klappt der Fallback (gerade getestet).
    Sowohl in der News-Liste als auch in der Event-Liste habe ich jetzt auch den passenden News-Reader bzw. Event-Reader mit angegeben und verwende jetzt das Modul Liste auch als Reader. Damit fällt schonmal die Fehlerseite bzw. leere Seite weg. Das ist ein Schritt in die richtige Richtung.

    Zitat Zitat von lomex Beitrag anzeigen
    Bei den Events läuft es ja genauso, oder?

    a) Kalender Weiterleitung auf Event-Liste
    b) Event-Liste mit Angabe eines Event-Readers

    Wenn die Event-Liste ein deutsches Event im zugeordneten Event-Reader darstellt, es aber kein engl. Event gibt, wird zur engl. Event-Liste geleitet und entsprechend alle Events aufgelistet.
    Auf diesem Weg funktioniert es auch mit der Event-Liste.

    ABER: Jetzt verwende die gleiche Seite für die Liste und den Reader. Damit kann ich nicht mehr unterschiedliche zusätzliche Inhaltselemende in Abhängigkeit davon verwenden, ob es sich um die Liste oder den Reader handelt.

    Auf der Reader-Seite verwende ich zusätzlich zur Navigation zwischen den einzelnen News/Events ein Modul des Paketes inspiredminds/contao-sibling-navigation. Praktischerweise blendet sich diese Navigation automatisch aus, wenn die Liste angezeigt wird. Damit habe ich diesbezüglich keine Einschränkungen bei einer gemeinsamen Seite für Liste und Reader.

    Beim Event-Reader zeige ich auf einer Karte auch die Lage des Veranstaltungsortes mit an. Hierzu verwende ich ein Modul zur Kartendarstellung aus dem Paket con4gis/maps. Wenn jetzt die Event-Liste angezeigt wird, erhalte ich hier eine leere Landkarte ohne Einträge, da sich das Modul nicht automatisch ausblendet, wenn die Liste angezeigt wird.

    Bei der Event-Liste habe ich Textelemente vor und nach dem eingebundenen Modul zur Anzeige der Event-Liste. Diese Textelemente passen jedoch nicht und stören, wenn der Event-Reader genutzt wird.

    Eine Möglichkeit, dies zu vermeiden, wäre es, wie gehabt getrennte Seiten für die Event-Liste und den Event-Reader zu nutzen. Die Seite zur Anzeige eines einzelnen Events verwendet anstelle des Event-Reader jetzt aber auch das Modul Event-Liste. Damit bliebe (fast) alles beim Alten, lediglich wenn beim Sprachwechsel kein zugehöriges Event existiert, zeigt die Seite des einzelnen Events jetzt einfach auch die Event-Liste an. Allerdings habe ich jetzt zwei redundante Möglichkeiten, die Event-Liste zu sehen. Einmal korrekt über die separate Seite der Event-Liste und jetzt auch noch über die Seite, die normalerweise zur Anzeige eines einzelnen Events verwendet wird.

    Die wünschenswerte Lösung wäre es, wenn ich die Seite des Event-Readers bei Aufruf ohne Item einfach weiterleiten könnte auf die separate Seite mit der Event-Liste.
    Gibt es eine Möglichkeit, dies umzusetzen?



    Zitat Zitat von lomex Beitrag anzeigen
    Das Ausblenden des Sprachenwechslers auf bestimmten Seiten finde ich nicht so schön. Das ist nicht konsistent. Mal abgesehen davon kann man das doch im Modul einstellen? Dann tritt genau dieser Fall auf (in meinem Fall getestet mit deutscher Nachricht ohne englisches Gegenstück, dann wird EN im Sprachenwechsler nicht angezeigt)
    Der Sprachenwechsler wird bei mir bisher auf allen Seiten angezeigt und das würde ich auch gerne so beibehalten. Wenn es in der jeweiligen Sprache kein direktes Gegenstück zur aktuellen Seite gibt, wird auf die zugehörige übergeordnete Seite verwiesen.

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

    Standard

    Zitat Zitat von Joern Beitrag anzeigen
    Der Sprachenwechsler wird bei mir bisher auf allen Seiten angezeigt und das würde ich auch gerne so beibehalten. Wenn es in der jeweiligen Sprache kein direktes Gegenstück zur aktuellen Seite gibt, wird auf die zugehörige übergeordnete Seite verwiesen.
    Hast du die Option Sprachen ohne direkte Hauptsprache ausblenden aktiviert?

  9. #9
    Contao-Nutzer Avatar von Joern
    Registriert seit
    14.09.2018.
    Beiträge
    130

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Hast du die Option Sprachen ohne direkte Hauptsprache ausblenden aktiviert?
    Die Option Sprachen ohne direkte Hauptsprache ausblenden habe ich NICHT aktiviert, denn ich möchte ja gerade auf jeder Seite den Wechsel der Sprache ermöglichen, ggf. eben mit Fallback auf die übergeordnete Seite.

    Das Problem hier ist meiner Meinung nach, dass in diesem speziellen Fall eben nicht das korrekte Fallback (die separate Seite der Event-Liste) verlinkt wird.

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

    Standard

    Zitat Zitat von Joern Beitrag anzeigen
    Die Option Sprachen ohne direkte Hauptsprache ausblenden habe ich NICHT aktiviert, denn ich möchte ja gerade auf jeder Seite den Wechsel der Sprache ermöglichen, ggf. eben mit Fallback auf die übergeordnete Seite.
    Verstehe ich nicht. Wenn eine Seite kein Pendant hat, wo soll der Sprachenwechsler dann hin verlinken? Aktuell wird dann der Website Root genommen.



    Zitat Zitat von Joern Beitrag anzeigen
    Das Problem hier ist meiner Meinung nach, dass in diesem speziellen Fall eben nicht das korrekte Fallback (die separate Seite der Event-Liste) verlinkt wird.
    Das geht nicht, der Sprachenwechsler weiß von dieser Seite ja nichts.

  11. #11
    Contao-Nutzer Avatar von Joern
    Registriert seit
    14.09.2018.
    Beiträge
    130

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Verstehe ich nicht. Wenn eine Seite kein Pendant hat, wo soll der Sprachenwechsler dann hin verlinken? Aktuell wird dann der Website Root genommen.
    Nein, es wird nicht zwingend der Website Root genommen, es wird eine Ebene höher gewechselt.

    Root
    -Ebene 1
    --Ebene 2

    Wenn die Seite in Ebene 2 kein Pendant hat, wird stattdessen das Pendant von Ebene 1 (der nächsthöheren Ebene) genommen.


    Zitat Zitat von Spooky Beitrag anzeigen
    Das geht nicht, der Sprachenwechsler weiß von dieser Seite ja nichts.
    Dass es nicht ganz so einfach ist, ist mir bewußt.

    Ich sehe zwei, drei Möglichkeiten zur Lösung:

    1. Es gäbe eine neue Option direkt in den Seiteneinstellungen von Contao, wo ich jetzt schon die Option "Element erforderlich, andernfalls Fehlerseite 404" (Zeigt die Fehlerseite 404, wenn die URL kein Alias zu einem Element enthält.) anwählen kann. Die neue Option könnte in etwa so heißen: "Element erforderlich, andernfalls Weiterleitung" (Leitet auf die auszuwählende Seite weiter, wenn die URL kein Alias zu einem Element enthält.)
    2. Es gäbe eine Möglichkeit auf einer Seite bei den Einträgen zum Sprachenwechsler manuell eine Seite als Fallback vorzugeben, die das Standardverhalten individuell überschreibt.
    3. Die aufwändige und umständliche Option ist es, manuell Templates anzupassen und es zu versuchen, auf diesem Wege zu lösen.
    Geändert von Joern (23.04.2019 um 13:23 Uhr)

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

    Standard

    Das wäre wieder eine Diskussion für GitHub

  13. #13
    Contao-Nutzer Avatar von Joern
    Registriert seit
    14.09.2018.
    Beiträge
    130

    Standard

    Das Contao-eigene Modul Breadcrumb/Navigationspfad zeigt es in der Hierarchie übrigens korrekt an, so wie ich es mir wünschen würde, dass es sich auch beim Sprachenwechsler verhält.

    Root
    +Event-List
    ++Event-Reader

    Beim Anzeigen der Event-List sieht der Navigationspfad so aus:

    Code:
    https://domain.de/event-list.html
    Root >> Event-List
    Die übergeordnete Ebene ist hier also Root.

    Beim Anzeigen eines einzelnen Events über den Event-Reader sieht es so aus:
    Code:
    https://domain.de/event-list/event-reader/event-alias.html
    Root >> Event-List >> Event-Reader
    Die übergeordnete Ebene eines einzelnen Events ist hier also direkt Event-List (und nicht fälschlicherweise Event-Reader).
    Geändert von Joern (23.04.2019 um 14:08 Uhr)

  14. #14
    Contao-Nutzer Avatar von Joern
    Registriert seit
    14.09.2018.
    Beiträge
    130

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Das wäre wieder eine Diskussion für GitHub
    Wäre dann die Frage, wo bei GitHub. Je nach Lösungsmöglichkeit entweder direkt bei Contao oder beim Sprachenwechsler?

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

    Standard

    Sprachenwechsler.

  16. #16
    Contao-Fan Avatar von lomex
    Registriert seit
    03.07.2009.
    Ort
    Werne
    Beiträge
    791
    User beschenken
    Wunschliste

    Standard

    Variante 1:
    Also am Einfachsten wäre es demnach, die Karte nicht anzuzeigen, wenn kein News-Beitrag ausgewählt wurde. Dann würde auch die Fallback-Seite funktionieren. Das ließe sich ja theoretisch lösen, indem man zur Modul DCA eine Checkbox hinzufügt ("ohne News-Beitrag ausblenden") und dann per Hook das Modul entsprechend nicht ausgibt - dann wäre es variabel - und schnell umgesetzt.

    Variante 2:
    Man kann natürlich auch das Changelanguage Modul erweitern/anpassen um eine Fallback-Seite einzubauen (oder ein Feature-Request auf Github). Das halte ich aber für etwas schwieriger (wenngleich natürlich möglich). Letztlich arbeiten die auch nur mit einem eigenen Hook für die News/Events. Dort könnte man "einsteigen". Ich persönlich fände es auch gut, wenn man im Changelanguage Modul eine Fallback Seite angeben könnte. Gibt es aber derzeit nicht.

    Wenn Du mit solchen Anpassungen nicht vertraut bist, wird es wohl eher schwierig (mit Bordmitteln). Eine Möglichkeit wäre noch:

    Variante 3:
    Erstelle ein Template in /templates, z.B. showMapOnlyOnNewsDetail.html5
    Darin schreibst Du:

    PHP-Code:
    <?php 
      
    if(empty(\Input::get("auto_item"))) {
        echo 
    $this->replaceInsertTags'{{insert_module::xx}}' ); ?>
      }
    ?>
    xx steht für die Modul ID Deiner Karte, die Du eigentlich auf der News-Reader Seite eingebaut hattest. Dieses Template bindest Du jetzt statt deiner Karte ein mit {{file::showMapOnlyOnNewsDetail.html5}}. Also auf der jetzt einzigen News-Liste Seite. Jetzt wird Dir die Karte nur angezeigt, wenn es auch einen News-Beitrag gibt.

    Und bevor ich jetzt erschlagen werde:

    * ja, ich weiß, dass eine Modul-ID im Template suboptimal ist
    * und replaceInsertTags im Template auch verbessert werden kann, wenn man dort das Modul direkt generiert, statt über einem InsertTag. Bin aber zu faul zu suchen, wie es unter Contao 4.7 geht.

    So funktioniert es jedenfalls (getestet).

  17. #17
    Contao-Fan Avatar von lomex
    Registriert seit
    03.07.2009.
    Ort
    Werne
    Beiträge
    791
    User beschenken
    Wunschliste

    Standard

    Die Event-Liste ist aber nicht zwingend eine Ebene über dem Reader. Der Reader kann ja ganz woanders liegen. Daher müsste das Changelanguage Modul das irgendwo her wissen. Was es aktuell nicht tut. Daher wird meines Wissens immer zu Root verlinkt, wenn es kein Pendant gibt.

  18. #18
    Contao-Nutzer Avatar von Joern
    Registriert seit
    14.09.2018.
    Beiträge
    130

    Standard

    Zitat Zitat von lomex Beitrag anzeigen
    Die Event-Liste ist aber nicht zwingend eine Ebene über dem Reader. Der Reader kann ja ganz woanders liegen. Daher müsste das Changelanguage Modul das irgendwo her wissen. Was es aktuell nicht tut.
    Ja, das ist mir bewußt, aber das kann man in der Seitenhierarchie passend einrichten.

    Zitat Zitat von lomex Beitrag anzeigen
    Daher wird meines Wissens immer zu Root verlinkt, wenn es kein Pendant gibt.
    Nein, es wird nur zur nächsthöheren Ebene verlinkt. Siehe #11 erster Absatz.

  19. #19
    Contao-Nutzer Avatar von Joern
    Registriert seit
    14.09.2018.
    Beiträge
    130

    Standard

    Zitat Zitat von lomex Beitrag anzeigen
    Wenn Du mit solchen Anpassungen nicht vertraut bist, wird es wohl eher schwierig (mit Bordmitteln).
    Bisher bin ich damit noch gar nicht vertraut. Ich hoffe aber, dass sich das in Zukunft ändert.


    Zitat Zitat von lomex Beitrag anzeigen
    Variante 3:
    Erstelle ein Template in /templates, z.B. showMapOnlyOnNewsDetail.html5
    ...
    xx steht für die Modul ID Deiner Karte, die Du eigentlich auf der News-Reader Seite eingebaut hattest. Dieses Template bindest Du jetzt statt deiner Karte ein mit {{file::showMapOnlyOnNewsDetail.html5}}. Also auf der jetzt einzigen News-Liste Seite. Jetzt wird Dir die Karte nur angezeigt, wenn es auch einen News-Beitrag gibt.

    So funktioniert es jedenfalls (getestet).
    Vielen Dank für diesen ausführlichen Hinweis samt getestetem Beispiel. Auf dem Wege könnte ich dann auch die anderen Inhaltselemente der Seite News-Liste bzw. Event-Liste genau umgekehrt ein- bzw. ausblenden.

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
  •