HSener
I'm new here

toText()-Methode auf ein DomElement mit eigener Formatvorlage

Jump to solution

Hallo Community,

ich hänge gerade vor einem Problem bezüglich des Rückgabewertes von toText() auf ein DomElement mit eigener Formatvorlage.

In den Formatvorlagen habe ich eine eigene Formatvorlage angelegt das den Content mit <p class="info">$CMS_VALUE(#content)$</p> umschließt.

In der Anwendung habe ich den Broker, StoreElementAgent und masterLanguage (mit LanguageAgent) geholt. In der Anwendung erfolgt danach der Zugriff auf das DomElement.

final Content2 content = (Content2) storeElementAgent.loadStoreElement(Tabellenname, Content2.UID_TYPE,false);

List<Dataset> datasets = content.getDatasets();

for (Dataset dataset : datasets) {

      FormData formData = dataset.getFormData();

      FormField<?> formField = formData.get(masterLanguage, Attributname des DomElements);

      DomElement domElement = (DomElement) formField.get();

      System.out.println(domElement.toText(true);

}

   

toText(true) damit ich die Tags mitbekomme.

Als Ausgabe erhalte ich folgendes

<ft_info>Infotext</ft_info> //falsch

Wieso bekomme ich in den Tags den Referenznamen des FormatTemplates statt die angegebene Definition?

<p class="info">Infotext</p> //richtig

Würde mich über Infos und Hilfe freuen.

Freundliche Grüße

Hüseyin Sener

1 Solution

Accepted Solutions

Hallo in die Runde,

die API des DOM ist nicht dafür ausgelegt, den Inhalt über Vorlagen zu erstellen. Die toText Methode dient allein der strukturierten Ausgabe des Inhalts für weitere technische Bearbeitung durch den Redakteur, wie im ContentCreator.

Beste Grüße

Stefan

View solution in original post

0 Kudos
9 Replies
pavone
I'm new here

Hallo,

in einem kurzen Test konnte ich dein Problem noch nicht nachstellen. Welche genaue FirstSpirit-Version verwendest du?

Viele Grüße

Tim

0 Kudos

Hallo Herr Gremplewski,

wir verwenden aktuell die Version 5.1.507.

Freundliche Grüße

Hüseyin Sener

0 Kudos
LVanselow
I'm new here

Hallo zusammen,

das gleiche Problem habe ich auch. Habe die Standardvorlage headline 2 erlaubt beim Aufruf von toText(true) im Executable erhalte ich <headline_2>Welcome</headline_2>.

FS Version 5.2.313

VG

Lars

0 Kudos

Hallo in die Runde,

die API des DOM ist nicht dafür ausgelegt, den Inhalt über Vorlagen zu erstellen. Die toText Methode dient allein der strukturierten Ausgabe des Inhalts für weitere technische Bearbeitung durch den Redakteur, wie im ContentCreator.

Beste Grüße

Stefan

0 Kudos

Hallo Stefan,

gibt es eine von eSpirit empfohlene Methode um ein DOM Feld im Executable komplett zu parsen?

Danke und VG

Lars

0 Kudos

Hallo Lars,

einen solchen Weg gibt es in der API bislang nicht.

Vielleicht magst du dir ja die Zeit nehmen und einen entsprechenden Feature-Wunsch aufzuschreiben. Am Besten mit entsprechendem Anwendungsfall, damit klar ist, warum man den Render-Stand des DOM innerhalb des Executable-Kontexts benötigt.

Beste Grüße

Stefan

Danke Stefan, ich habe eine Idea aufgemacht: https://community.e-spirit.com/ideas/1606

Hallo Stefan,

das verstehe ich nicht, wieso soll das ein Featurewunsch sein?
Wir benötigen ein Rendering, welches einfach nicht möglich oder kaputt ist.

Was ist mit dem Featurewunsch passiert?

https://community.e-spirit.com/ideas/https://community.e-spirit.com/ideas/1606

Was wir brauchen ist ja einfach ein korrektes Rendering in der API, was auch die $CMS_VALUE(domField)$ machen würde.

Dies erwarte ich eigentlich von der toText(true) oder .parseHtml() Methode (für den anderen Anwendungsfall gibt es ja toText(false)).

Beide funktionieren aber nicht oder nicht richtig. Der Entwickler sollte sich ja nicht um das (verschachtelte Rendering der templates kümmern müssen?)

Danke & Grüße,

Maik

0 Kudos

... der Feature Link oben ist einfach defekt.

Korrekt ist:

Rendern von DomElementen im Executable ermöglichen

Ich probiere jetzt den darin enthaltenen Vorschlag vom Daniel mit dem RenderingAgent.

best,

Maik

0 Kudos