• Liebe webEdition Community

    Mein neustes Website-Projekt ist zweisprachig. Nun bin ich auf folgendes Problem gestossen:
    Ich habe einer Übersichtsseite erstellt, bei welcher ich über eine Sammlung, Inhalte aus Dokumenten darstelle. Nun bräuchte ich noch den Link zur alternativen Sprache. Diesen kann ich jedoch über kein Feld aufrufen.

    Hat mir hier jemand einen Tipp oder habe ich etwas übersehen? (Web Edition Version 9.2.3)

    Ich danke euch herzlich für eure Rückmeldung
    Markus

  • Lieber Heiko

    Herzlichen Dank für deine Rückmeldung

    Die Seiten sind miteinander verknüpft jedoch. Mit listview type languagelink funktioniert dies auch hervorragend. Das Problem ist jedoch, dass ich den Pfad oder ID der alternativen Sprachseite nicht in einer listview type document oder Sammlung auslesen kann.

    Hast du hier auch eine Idee? Ich stelle mir dies etwa wie folgt vor:

    <we:listview type="document" name="artikel" workspaceID="150">
        <we:repeat>
            /////// So ein Feld stelle ich mir vor /////
            <we:field type="text" name="WE_ALTERNATIVE_LANGUAGEPATH" />
        </we:repeat>
    </we:listview>

    Es darf sehr gerne auch eine PHP Lösung sein, jedoch wäre ich froh, wenn Sie einigermassen updatesicher ist.


    Herzliche Grüsse
    Markus

  • Hallo Markus,

    Ich fürchte, der Language Link (es können auch mehrere sein) steht innerhalb einer <we:listview type="document"> nicht so ohne weiteres zur Verfügung.

    Ich habe das jetzt auch kurz mit einer eingebetteten <we:listview type="languagelink"> probiert. Die Listview wurde mir innerhalb einer <we:listview type="document"> aber nicht ausgewertet (zumindest in wE8).

    Man müsste wohl die <we:listview type="languagelink"> so erweitern, dass sie auch innerhalb von <we:listview>s funktionieren und die Daten des aktuellen Dokuments bzw. des Objekts berücksichtigt.

    Liebe Grüße,
    Sascha

    Edited once, last by WBTMagnum (June 21, 2024 at 3:06 PM).

  • Hallo Sascha

    Herzlichen Dank für deine Rückmeldung. Folgendes konnte ich erstellen:

    Ich habe auf der Seite von wo aus die Daten für das Listview folgendes erstellt.

    Code
    <we:listview type="languagelink" name="sprachen" pagelanguage="top" showself="false" order="Locale" objectseourls="true" hidedirindex="true" recursive="true">
        <we:repeat>
            <we:field name="we_path" to="global" nameto="alternateLangPath"/>
        </we:repeat>
    </we:listview>
    <input type="text" name="alternateLang" value="\$alternateLangPath">

    Somit kann ich den Pfad im Listview abfragen. Das Problem ist, dass wenn sich der Pfad ändert, dieser nicht automatisch aktualisiert wird.

    Daher die Frage: Gibt es eine Möglichkeit, eine dynamische Variable an das Listview zu übergeben? Vielleicht wäre dies ein anderer Ansatz.

    Herzliche Grüsse
    Markus

  • Hallo Markus,

    Wenn ich dich recht verstehe, dann speicherst du die andere Sprache jetzt einfach als eigenes Feld in den Dokumenten? Das ist natürlich auch ein Ansatz, bei mehreren Sprachen wir das allerdings komplizierter.

    Bzgl. dem Pfad: Kannst du statt `we_path` nicht einfach `we_id` verwenden?


    LIebe Grüße,
    Sascha

  • Hallo Sascha

    Herzlichen Dank für deine Rückmeldung. Das «we_path» durch «we_id» ersetzen sollte kein Problem darstellen. Was ich jedoch das Problem habe, die ID muss nun immernoch zusätzlich eingetragen werden. Wenn ich eine dynamische Variable an ein Listview weitergeben kann, wäre dies einfacher und flexibler. Besteht diese Möglichkeit?

    Herzliche Grüsse
    Markus

  • Hallo Markus,

    Mir ist leider nicht klar, wie du das meinst? Also in welchem Kontext. Beziehst du dich hier auf den Editmode oder auf das Frontend? Skizziere vielleicht kurz, was du machen willst.

    Liebe Grüße,
    Sascha

  • Hallo Sascha

    Also Folgendes vorgehen würde ich mir wünschen

    Produktdetail Seite:

    Code
    <we:listview type="languagelink" name="sprachen" pagelanguage="top" showself="false" order="Locale" objectseourls="true" hidedirindex="true" recursive="true">
        <we:repeat>
            <we:field name="we_id" to="global" nameto="alternateLangId"/>
        </we:repeat>
    </we:listview>


    Nun möchte ich auf der Produktübersichtseite die Variable $GLOBALS['alternateLangId'] auslesen.

    Produktübersichtseite:

    PHP
    <we:listview name="ids" type="document" workspaceID="160" searchable="false" order="we_id" desc="true">
    	<we:repeat>
    			<?php echo $GLOBALS['alternateLangId']; ?>	
    	</we:repeat>
    </we:listview>

    Das dies so nicht funktioniert ist mir bewusst. Nur gibt es eine Möglichkeit die Variable $GLOBALS['alternateLangId'] von der Produkt Detailseite auf der Produktübersichtsseite darzustellen?

    Oder anders gefragt: Kann ich eine Globale Variable von der Produkt Detailseite an ein Listview Element auf der Produktübersichtsseite übergeben?

    Ich hoffe das ist genug verständlich geschrieben. Tut mir Leid für die komplizierte Erklärung. :|

    Herzliche Grüsse
    Markus

  • Hallo Markus,

    Danke! Mit deiner Beschreibung ist mir nun klar, wie du das meinst. Leider hab ich auf die Schnelle auch keine Lösung parat. Am ehesten würde ich das mit einem Hook umsetzen. Mir fehlt nur gerade die Idee, wie man im Hook an die Language Links ran kommt.

    Aber vielleicht hat da jemand eine schlauere Idee.

    Liebe Grüße,
    Sascha

  • Hallo Sascha

    Herzlichen Dank für deine Unterstützung. Ich habe nun alles von Path auf Id umgestellt.

    Code
    <we:listview type="languagelink" name="sprachen" pagelanguage="top" showself="false" order="Locale" objectseourls="true" hidedirindex="true" recursive="true">
        <we:repeat>
            <we:field name="we_id" to="global" nameto="alternateLangId"/>
        </we:repeat>
    </we:listview>
    <input type="text" name="alternateLang" value="\$alternateLangId">

    Grundsätzlich funktioniert es so ganz gut. Es muss jetzt einfach immer kontrolliert werden ob die ID auch wirklich auf das fremdsprachige Dokument zeigt. Da es an dieser Seite nicht extrem viele Änderungen gibt, kann ich gut mit diesem leben.

    Herzliche Grüsse
    Markus

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!