Zum Hauptinhalt gehen

Sprachwechsel und automatisches Auslesen des Menüpunktnamens bei interner Verlinkung

Kommentare

4 Kommentare

  • Zendesk API User
    Author: mbergmann - 12/6/2019 21:00

    Hallo Ralf,

    hier musst Du die im Java ApiDoc (genauer: Access-API) dokumentierten Methoden nutzen, da es hierfür keine "vereinfachte" Template-Syntax gibt.

    Der "Abbiegepunkt" wäre hier das FormData-Objekt, das Du nach dem Teil "st_pageref_link.get().page.formData" hast.

    Versuch bitte mal folgendes:

    lt_pageref_link.get().page.formData.get(lt_language_link.value, "pt_page_header").items[0].st_page_headline

    und analog für den Menünamen

    lt_pageref_link.get.getDisplayName(lt_language_link.value)

    Das "value" brauchst Du hier, weil die API-Methode FormData#get(Language language, String fieldName) für die Sprache nur ein echtes Language-Objekt nimmt, das Sprachkürzel funktioniert dort nicht. Das könnte man sich zwar über die Abkürzung holen, das <CMS_INCLUDE_OPTIONS type="language"/> liefert das aber praktischerweise auch direkt über ".value".

    Kleine Anmerkung: Im Formular in Deinem Posting heißt es lt_pageref_link, in den Beispielen weiter unten dann st_pageref_link - ich vermute aber mal, da ist nur beim Posting etwas durcheinander geraten, oder habe ich etwas übersehen?

    Viele Grüße

    Michael

    0
  • Zendesk API User
    Author: Juncus - 12/9/2019 12:14

    Hallo Michael,

    vielen Dank für deine Hilfe.

    Zu deiner Anmerkung bezüglich Benennung (lt -st): Da gab es von mir einen Kopierfehler. Wir nutzen die Lösung sowohl in Verweisvorlagen als auch in Absatzvorlagen.

    Deine Tips haben mir sehr geholfen und ich konnte die Probleme lösen.

    Dein Vorschlag für die Menüpunktnamen hat sofort geklappt.

    Ich habe Ihn allerdings jetzt noch etwas abgewandelt um nicht die Namen der Pageref sondern nur die Namen aus der Menüstruktur (Folder) zu erhalten.

    $CMS_VALUE(ref(lt_pageref).target.parentFolder.languageInfo(lt_language_link.value).displayName)$

    Bei der Lösung zum Auslesen der Headline musste ich etwas rumprobieren.

    Ich konnte aber, dank deines Codes das Ganze an den Aufbau der Seiten und Absätze bei uns anpassen.

    Da bei uns das Formularfeld pt_page_header vom Typ FS_Catalog ist und sprachunabhängig eingestellt ist und die darin liegende Headline-Absatzlösung die Sprachabhängigkeit löst konnte ich das Ganze so aufrufen:

    $CMS_VALUE(lt_pageref.get().page.formData.pt_page_header.items[0].get(lt_language_link.value, "st_page_headline").get)$

    Viele Grüße v.

    Ralf

    0
  • Zendesk API User
    Author: mbergmann - 12/10/2019 7:54

    Hallo Ralf,

    freut mich dass es klappt!

    Was mir noch einfiel: Wenn Du eh auf die Ordner gehst, ist es ggf. sinnvoller den Menünamen zu nehmen statt des Anzeigenamens.

    Grund: Die Anzeigenamen gibt es je nach Konfiguration der Sprachen nicht zwingend in allen Ausgabesprachen sondern nur in den Redaktionssprachen (die eine Teilmenge der Ausgabesprachen sind). Den Menünamen schon.

    Ausgehend vom Ordner wäre das folder.getFolderLangSpec(lt_language_link.value).label

    Viele Grüße

    Michael

    0
  • Zendesk API User
    Author: Juncus - 12/10/2019 9:18

    Hallo Michael,

    danke für den Tip.

    Hab es schon eingebaut.

    Falls es jemanden, der auch eine solche Frage hat, interessiert hier noch der funktionierende Codeschnipsel:

    $CMS_VALUE(ref(lt_pageref).target.parentFolder.getFolderLangSpec(lt_language_link.value).label)$

    Viele Grüße v.

    Ralf

    0

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.