Zum Hauptinhalt gehen

Links werden nicht ausgewertet bei toText Methode eines DomElements

Kommentare

6 Kommentare

  • Zendesk API User
    Author: AndreasOesterle - 8/29/2014 16:16

    Laut Doku gibt es die Methode renderToString die genau das gewünschte Parsing vornimmt.

    http://localhost:8000/help/odfs/Vorlagenentwicklung/Vorlagensyntax/Datentypen/DomElement

    Schaut man aber in die API, so gibt es dort die Methode nicht:

    http://localhost:8000/help/odfs/access/index.html?de/espirit/firstspirit/access/editor/value/DomElement.html

    Wie kann man jetzt die Methode in einem Modul verwenden?

    0
  • Zendesk API User
    Author: StefanSchulz - 9/1/2014 7:08

    Hi,

    die Methode toText(boolen) für ein DOM Element ist nicht zur formatierten Werteausgabe gedacht. Sie liefert einen Arbeitswert für Eingabekomponenten. Das Format ermöglicht, die detaillierten Linkdaten an Hand der id auszulesen und beim Setzen die entsprechenden Linkdaten wieder zuzuordnen. Der Verbleib dieser Methode in der API hat wohl eher historische Gründe.

    Die für die Vorlagensyntax beschriebene Methode renderToString ist keine API-Methode und explizit für den Generierungskontext gedacht.

    Vielleicht beschreiben Sie hier ihren Anwendungsfall, damit sich die Leser Gedanken zu einer Lösung machen können.

    Beste Grüße

    Stefan

    0
  • Zendesk API User
    Author: AndreasOesterle - 9/1/2014 10:40

    Hallo,

    in einem ScheduleContext wollen wir einen Content Select ausführen. Damit der Content Select nicht pro Page ausgeführt wird hängen wir dessen Ergebnis an den Schedule Context. Das spart uns einige Minuten an Generationszeit, da unsere DB Requests nicht die schnellsten sind.

    Hierfür lesen wir die Datasource über die API aus und binden das Ergebnis als HashMap an den Schedule Context.

    contentStore = context.getUserService().getStore(Type.CONTENTSTORE, false);

    glossaryDatasource = contentStore.getContent2ByName("glossary");

    entityList = glossaryDatasource.getData(lang);

    Wenn die Methode renderToString nicht über die API zugreifbar ist, wie kann man dann ein DomElement in einem Modul oder Beanshell Script auslesen?

    Beste Grüsse

    Andreas Österle

    0
  • Zendesk API User
    Author: essmann - 9/11/2014 10:45

    Hallo Andreas,

    um ein DOM Element auszulesen, muss es in der Generierung erzeugt werden. Es gibt keine API-Methode, die es erlaubt, dies ausserhalb des Generierungskontextes zu tun. Um eine alternative Lösung zu entwickeln, muss man genau verstehen, was Eure fachliche Anforderung ist und um welche Mengengerüste es geht. Bitte diskutiert dies mit einem FirstSpirit Consultant.

    Gruß,

    --Bernd

    --

    e-Spirit AG

    Dr. Bernd Eßmann

    0
  • Zendesk API User
    Author: AndreasOesterle - 9/12/2014 7:53

    Hallo zusammen,

    die Methode renderToString steht nur in Seiten-, Absatz-, Datenbank-, und Formatvorlagen zur Verfügung. Wenn man die Methode verwenden will, darf man den Code nicht auslagern in ein Script oder ein Modul.

    In unserem Fall greife ich nicht mehr in einem Script über das Content2 Objekt auf das DomElement zu. Den Code habe ich nun in eine Formatvorlage ausgelagert und hole mir über die CMS_FUNCTION contentSelect die Datensatzeinträge. Dort kann ich die Methode renderToString anwenden. Die Datensatzeinträge schreibe ich dann in eine HashMap in dem ich mir ein HashMap in der Formatvorlage erzeuge mit:

    $CMS_SET(glossarHashMap, class("java.util.HashMap").new())$

    Diese HashMap kann ich dann in meinem Modul weiterbearbeiten.

    Ganz schön kompliziert, aber anders scheint es nicht zu gehene.

    VG
    Andreas Österle

    0
  • Zendesk API User
    Author: Peter_Jodeleit - 9/12/2014 9:13

    Kleiner Hinweis: $CMS_SET(glossarHashMap, {})$ erzeugt ebenfalls eine Map.

    0

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