Charlotte_Koeni
I'm new here

Eingabelement mit String aufrufen

Jump to solution

Hallo zusammen,

eine Frage zur Umwandlung von Datentypen bzw. der Verwendung von Strings:

In einer Absatzvorlagen habe ich mehrere CMS_INPUT_TEXT - Elemente die Bezeichnungen dieser Elemente unterscheiden sich nur an der Endung und beginnen alle mit st_text_ . Im html-Reiter möchte ich diese Elemente nun auslesen. Normalerweise geht das ja ohne Probleme mit CMS_VALUE(st_text_XY). Am liebsten würde ich aber diese Variable "st_text_XY" dynamisch erzeugen. Das heißt ich nehme immer nur den Anfang "st_text_" und hänge dann je nachdem die Endung dran.

Das würde dann im speziellen so aussehen:

Als erstes speichere ich die Endung, die ich in diesem Fall anhängen möchte: CMS_SET(end, "de").

Und dann setzte ich diese Endung ein: CMS_VALUE("st_text_"+end)

Aber das funktioniert nicht, weil das CMS_VALUE dieses Konstrukt als String erkennt und auch als String wieder ausgibt.

Gibt es eine Möglichkeit diesesn String wieder in ein Objekt (oder wie man das nennt) umzuwandeln? Oder aber wenn man den String behalten muss, dass man diesen auch nutzen kann. Z.B. so: .getData().get("st_text_"+end).editor.get(#global.language)?

Hat jemand mit so einer Konstellation schon mal gearbeitet und könnte mir ein paar Tips geben?

Gruß

charlotte

0 Kudos
1 Solution

Accepted Solutions

Mh, dann ist mir ihre Anforderung noch nicht ganz klar.

Wenn ich die Methode im verlinkten Beitrag auf ihren Fall anwende, würde ich es so machen:

$CMS_SET(end, "de")$

$CMS_SET(snippetToUse)$st_text_$CMS_VALUE(end)$$CMS_END_SET$
$CMS_VALUE(#global.getContext().getVariableValue(snippetToUse.toString()))$

In der letzten Zeile würde dann der Wert der Eingabekomponente st_text_de ausgegeben.

View solution in original post

0 Kudos
5 Replies
feddersen
Community Manager

Variable variables sollte ihnen weiterhelfen.

0 Kudos

Nein, denn hier werden erstmal die Elemente ganz normal mit st_color, ..  ausgelesen, verarbeitet und dann mit "$CMS_VALUE(#global.getContext().getVariableValue(snippetToUse.toString()))$ "  als String wieder genutzt um die Variable red_headline auszulesen.

Ich möchte ja mit einem String nicht eine Variable auslesen, sondern das Element direkt. Oder aber der String wird umgewandelt.

gruß

charlotte

0 Kudos

Mh, dann ist mir ihre Anforderung noch nicht ganz klar.

Wenn ich die Methode im verlinkten Beitrag auf ihren Fall anwende, würde ich es so machen:

$CMS_SET(end, "de")$

$CMS_SET(snippetToUse)$st_text_$CMS_VALUE(end)$$CMS_END_SET$
$CMS_VALUE(#global.getContext().getVariableValue(snippetToUse.toString()))$

In der letzten Zeile würde dann der Wert der Eingabekomponente st_text_de ausgegeben.

0 Kudos

Ah, nein ich hatte es falsch verstanden. Ich dachte #global.context gilt nur für Variablen die mit CMS_SET definiert wurden und nicht für Bezeichner von Elementen. Aber ich habe es nochmal gründlich getestet (nich so schnell, schnell wie gerade) und es funktioniert!! DANKE!

Etwas kürzer mache ich es nun:

$CMS_SET(end, "de")$

CMS_SET(snippetToUse, "st_text"+end)

$CMS_VALUE(#global.getContext().getVariableValue(snippetToUse.toString()))$

gruß

charlotte

0 Kudos

Wobei das "toString()" auch noch überflüssig ist - nu um es noch weiter zu kürzen Smiley Wink

Peter
0 Kudos