captFuture
I'm new here

contentSelect gibt nur Datentyp String aus.

Jump to solution

Guten Morgen,

Ich hab eine angebundene Datenbank (readonly) aus einem anderen Projekt und möchte dem Redakteur nun die Möglichkeit geben auf seinen Contentseiten Inhalte einzubinden.

Dazu wollte ich contentSelect verwenden und mein Absatztemplate beinhaltet ein Eingabeelement wo der Redakteur die Referenz ID des gewünschten Eintrages eingeben kann und in der Ausgabe (momentan nur als Test gecoded) sollen dann die relevanten Datensätze per contentSelect ausgegeben werden.

Es funktioniert prima für alle Inhalte Strings (aus einem $CMS_INPUT_TEXT... Feld)

Bei den anderen scheitere ich komplett in der Ausgabe.

<CMS_HEADER>

<CMS_FUNCTION name="define" resultname="fr_st_itemid">

<CMS_CDATA_PARAM name="source">

<![CDATA[$CMS_TRIM(level:4)$

$CMS_SET(set_itemid,st_itemid)$

$CMS_END_TRIM$]]>

</CMS_CDATA_PARAM>

</CMS_FUNCTION>

<CMS_FUNCTION name="contentSelect" resultname="cs_tariffsize">

    <CMS_PARAM name="schema" value="CMSDB" />

    <CMS_VALUE_PARAM name="itemid" value="st_itemid"/>

<QUERY entityType="Tariffsize">

    <FILTERPARAM parameter="itemid" datatype="java.lang.String" value="0" />

    <EQ attribute="ITEM_ID" datatype="java.lang.String" parameter="itemid"/>

</QUERY>

</CMS_FUNCTION>

</CMS_HEADER>

$CMS_IF(!cs_tariffsize.isEmpty)$

<div>

$CMS_FOR(Tariffsize, cs_tariffsize)$

$CMS_VALUE(Tariffsize)$<br>

$CMS_VALUE(Tariffsize.ITEM_ID)$<br>

$CMS_VALUE(Tariffsize.name)$<br>

$CMS_VALUE(Tariffsize.Description)$<br>

$CMS_VALUE(Tariffsize.lDescription)$<br>

$CMS_VALUE(Tariffsize.legaltext)$<br>

$CMS_END_FOR$

</div>

$CMS_END_IF$

ich hab diverseste manipulationen der $CMS_VALUE probiert (hier zeige ich nur den grundzustand).

Das projekt ist prinzipiell mehrsprachig, aber die inhalte der angebundenen Datenbank nicht.

Danke für die Hilfe

Christoph

0 Kudos
1 Solution

Accepted Solutions
captFuture
I'm new here

Guten Morgen und Danke für die Hilfe,

Es funktionierte mit .legaltext_DE auch nicht, ich hab aber ein anderes Problem gefunden und bereinigt.

Bei einer Abfrage per contentSelect kann man ohne ein tabellentemplate angelegt zu haben alle einträge des datentypes "STRING" ohne Probleme auslesen, aber um das aus einem DOM feld zu bewerkstelligen müssen im Tabellentemplate auch die Felder angelegt werden und ein korrektes Mapping definiert sein.

Danke

Christoph

View solution in original post

0 Kudos
8 Replies
felix_reinhold
Returning Responder

Hi Christoph,

Welche Typen haben die anderen Felder denn?

Was heißt "scheitere ich an der Ausgabe" - wird nichts angezeigt, was falsches o. etwas kryptisches?

Gruß

Felix

0 Kudos

Hallo Felix,

-> es wird NICHTS angezeigt ... bei einer .toString umwandlung zB bekomme ich ein NULL ... ich sehe jedoch keinen fehler im debugger

Christoph

0 Kudos

Hallo Christoph,

von welchem Typ sind die Inhalte die aktuell nicht ausgegeben werden? Werden diese auch über FirstSpirit in die Datenquelle geschrieben (im Quellprojekt)?

An deinem Quellcode fällt mir gerade ad'hoc kein Fehler auf.

Die Funktion "fr_st_itemid" wird nicht benötigt, was ja aber kein Fehler ist.

Vielleicht ein paar Dinge die du prüfen könntest:

Welche Sprachen gibt es im Quellprojekt? Gibt es diese auch im Zielprojekt?

Vielleicht schreibst du Daten im Quellprojekt in DE und versuchst diese im Zielprojekt in EN auszulesen, weil es DE nicht gibt? Sind alle Eingabekomponenten in der Quelle sprachunabhängig (useLanguage=no)?

Ist das Mapping der Tabelle "Tariffsize" im Quellprojekt korrekt (gerade bei sprachabhängigen Feldern)?

Vielleicht hilft dir das?

Grüße,

Philipp

0 Kudos

Hallo Christoph,

ist dieses Posting noch aktuell? Benötigst du noch weitere Hilfe oder konnten dir die bisherigen Antworten bereits weiterhelfen? Solltest du noch weitere Hilfe benötigen, wäre es super, wenn du Philipps Fragen beantworten würdest.

Solltest du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es toll, wenn du diese hier bereitstellst.

Viele Grüße

Michaela

0 Kudos
captFuture
I'm new here

Hallo,

Leider komme ich wie ich es drehe und wende zu keinem ergebnis.

die Vorschau meldet sich mit fehlern:

WARN  ($CMS_VALUE(Tariffsize.legaltext)$ at 26, 1): Replacing null value with empty default!

Wenn ich für ein gewünschtes item direkt in der DB nachsehe kann ich den eintrag lesen:

<CMS_VALUE name="legaltext" tag="CMS_INPUT_DOM"><LANG id="DE" set="1"><DOM><p>Lorem Ipsum</p></DOM></LANG></CMS_VALUE>

Was mich hierbei ja sehr wundert ist, dass ich bei textfeldern dieses problem nicht habe - hier kommt der text sehr schön ans frontend.

0 Kudos

Hi Christoph,

wenn Trafiffsize.legaltext ein sprachabhängiges Attribut deiner Tabelle ist dann kommst du an den Wert mit:

$CMS_VALUE(Tariffsize.legaltext_DE)$

bzw, wenn du einen Wert in der Ausgabesprache hast:

$CMS_VALUE(Tariffsize.legaltext + "_" + #global.language.abbreviation)$

Grüße,

Philipp

0 Kudos
captFuture
I'm new here

Guten Morgen und Danke für die Hilfe,

Es funktionierte mit .legaltext_DE auch nicht, ich hab aber ein anderes Problem gefunden und bereinigt.

Bei einer Abfrage per contentSelect kann man ohne ein tabellentemplate angelegt zu haben alle einträge des datentypes "STRING" ohne Probleme auslesen, aber um das aus einem DOM feld zu bewerkstelligen müssen im Tabellentemplate auch die Felder angelegt werden und ein korrektes Mapping definiert sein.

Danke

Christoph

0 Kudos

Hallo Christoph,

benötigst Du noch weitere Hilfe? Solltest Du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es nett, wenn Du diese hier bereitstellst bzw. Deinen Beitrag als richtige Lösungf markierst.

Viele Grüße

Marian

0 Kudos