plamka
I'm new here

FS Integration DOM Wert ausgeben

Jump to solution

Hi, ich nutze das Integration Modul um auf die Inhalte aus der Datenbank zuzugreifen.

Jetzt habe ich allerdings an zwei Stellen ein Problem.

Zum einen würde ich gerne das Datum formatieren. Wie mache ich das ???

  <c:out value="${entry.date}" />

Zum anderen würde ich auch gerne das Datenbankfeld text auslesen, hierbei handelt es sich allerdings um ein DOM Element.

Wenn ich direkt drauf zugreife  <c:out value="${entry.text}" />, dann wird alles inkl. der FirstSpirit XML Syntax ausgegeben.

Das ist natürlich so nicht richtig, wie bekomme ich den formatierten Text ausgelesen?

<fsi:setSchema schema="intranet">

            <fsi:search resultName="entries">

                <fsi:query>

                    <QUERY entityType="I_Calendar">

                    </QUERY>

                </fsi:query>

                <c:forEach items="${entries}" var="entry">

                        <c:out value="${entry.date}" />

                          <c:out value="${entry.text}" />

                </c:forEach>

            </fsi:search>

        </fsi:setSchema>

Vielen Dank im Vorraus

0 Kudos
1 Solution

Accepted Solutions

Sie müssen den Basispfad zur Contentprojektion in die Seite generieren und dann per JSP einfach die entry.id anhängen. In Pseudocode sieht das so aus:

$CMS_REF(ss_news_details)$ //liefert die URL zum ersten Datensatz in der Contentprojektion http://yourdomain.com/news-detail_1.html

Sie brauchend die Basis-Url, also alles nach dem letzten "_" abschneiden. Das können Sie entweder mit CMS-Mitteln machen (CMS_VALUE, ref Funktion, in String konvertieren, indexOf und substring Methoden nutzen) oder direkt im JSP.

Das JSP macht dann sowas:

<%

String baseUrl = $CMS_VALUE(set_baseUrl); //das ist die bereinigte Basis-Url

String entityUrl = baseUrl + entry.fs_id

%>

und dann per JSP-Include inkludieren.

View solution in original post

0 Kudos
10 Replies
feddersen
Community Manager

Das Integration Modul unterstützt keine komplexen Datentypen. Die Ausgabe von DOM, INPUT_PICTURE und anderen komplexen Datentypen ist damit nicht möglich.

Best pratice ist für diese Felder einen entsprechenden HTML-Schnipsel zu generieren, den Sie dann per JSP-Include einbinden können.

Siehe auch:

Ausgabe eines Bild-Links aus Suchergebnis von FS-Integration

FS-Integration sollte Medien und DOM-Felder unterstützen

0 Kudos

Das ist natürlich ärgerlich. Damm frage ich mal ganz anders.

Wir wollen eine News Archive Seite umsetzen. Auf der Seite soll es die Möglichkeit geben Filter zu setzen.

Wie würde ich so eine Seite dann umsetzen ? Dann müsste ich ja das contentSelect und das Integration Modul mit einander kombinieren. Richtig ?

0 Kudos

Wieviele Filterkriterien haben Sie denn? Was spricht dagegen das Archiv über eine normale Contentprojektion zu generieren?

Jedes Jahr bzw. jeder Monat ist eine Contentprojektion, das entsprechende Übersichsseiten generiert. Dazu eine Contentprojektion, die die Newsmeldungen generiert.

0 Kudos

Ich möchte eine JQueryPagination Funktion einsetzen und zusätzlich nach Datum oder Location sortieren können. Zusätzlich sollen einige Filter gesetzt werden können, wie z.B. Standort.

0 Kudos

Dann würde ich Integration einsetzen und für den Teaser entsprechende Schnipsel generieren, die dann per Include eingebunden werden.

0 Kudos

Und wie würde ich die URL von den einzelnen Teasern ermitteln ?

0 Kudos

Jede Contentprojektion hat ja eine Url (per CMS_REF()$ ermittelbar). Man muss nur die ID am Ende austauschen.

Beispiel:

http://yourdomain.com/news-detail_123.html

http://yourdomain.com/news-detail_45643.html

Alternativ eine Mapping-Datei erzeugen, die die ID des Datensatzes und die URL enthält.

0 Kudos

Das habe ich bereits versucht, bekomme die URL allerdings nicht richtig generiert.

Die ID ist ${entry.fs_id}

Wenn ich ${entry.fs_id}  ausgebe, wird die ID direkt ausgegeben. Alles OK.

Wenn ich allerdings $CMS_REF(ss_news_details, contentId:entry.fs_id)$

in meiner Vorlage eingebe, wird keine URL generiert? Wenn ich z.B.

$CMS_REF(ss_news_details, contentId:"32323")$ eingebe, wird eine URL generiert.

Wie übergebe ich denn einen Wert an das CMS_REF, der über das Integration Modul ermittelt wurde?

Sieht so aus, als ob das nicht gehen würde ????

oder mache ich etwas falsch ?

0 Kudos

Sie müssen den Basispfad zur Contentprojektion in die Seite generieren und dann per JSP einfach die entry.id anhängen. In Pseudocode sieht das so aus:

$CMS_REF(ss_news_details)$ //liefert die URL zum ersten Datensatz in der Contentprojektion http://yourdomain.com/news-detail_1.html

Sie brauchend die Basis-Url, also alles nach dem letzten "_" abschneiden. Das können Sie entweder mit CMS-Mitteln machen (CMS_VALUE, ref Funktion, in String konvertieren, indexOf und substring Methoden nutzen) oder direkt im JSP.

Das JSP macht dann sowas:

<%

String baseUrl = $CMS_VALUE(set_baseUrl); //das ist die bereinigte Basis-Url

String entityUrl = baseUrl + entry.fs_id

%>

und dann per JSP-Include inkludieren.

0 Kudos