Search the FirstSpirit Knowledge Base
Hallo,
ich habe einer Seite einen Datensatz aus einer Datenquelle zugeordnet (In der Seitenvorlage CMS_INPUT_COMBO_BOX mit CMS_INCLUDE_CONTENT)
nun möchte ich an einen bestimmten Stringwert aus dieser Datenquelle (per Script) auslesen.
Ich habe folgendes versucht
ComboboxEditorValue ctobj = (ComboboxEditorValue)sourcePage.getData().get("st_teasertyp").getEditor();
wenn ich fortsetze mit
Object obj= ctobj.get(ctx.getLanguage());
Bekomme ich als Klasse die inner class
de.espirit.firstspirit.store.access.contentstore.ContentOptionFactory$ContentOption
An dieser Stelle komme ich schon nicht weiter; irgendwann müßte ich noch die Tabellenspalte spezifizieren, um an den Wert zu kommen,
der mich interessiert..
Mit einem $CMS_VALUE$ komme ich per
$CMS_SET(setContentTyp,sourcepage.getData().get("st_teasertyp").getEditor().get(context.getProject().getMasterLanguage()).getValue().getValue("techname"))$
an mein Ziel, die Kette ist aber im Eclipse so nicht lauffähig - hier bekomme ich nach dem getEditor() den Fehler (genauso)
The method getValue() is undefined for the type capture#11-of ?
Irgendwas mache ich da noch falsch.. (jemand eine Idee?)
Danke & Gruß,
Michael
Hallo Michael,
Wenn ich mal annehme, dass die Werte in der Combobox auch aus einer Datenquelle kommen, komme ich mit "ctobj.get(ctx.getLanguage()).getValue(); an die ausgewählte "Entity"
Language lang = context.getProject().getMasterLanguage();
Content2 C2contentTable = cs.getContent2ByName("dq_ohb_rgl_import");
Data erg = C2contentTable.getDataObject(dbRow);
ComboboxEditorValue cbe = (ComboboxEditorValue) erg.get("cs_Handbuch").getEditor();
Entity ent = cbe.get(lang).getValue();
dq_ohb_rgl_import ist eine Datenquelle
cs_Handbuch ist das Comboboxfeld in der Datenquelle
Grüße aus DD
Andreas
Hallo Andreas,
danke für die Unterstützung.
Mein Fall ist etwas anders; ich habe die Zuordnung aus einer Seite heraus, über eine Combox, in der ich den Datensatz auswähle.
Wie gesagt, Ich bekomme als Objekt für den ComboBoxEditorValue die innere Klasse "ContentOptionFactory.ContentOption". Ich kann daraufhin leider nicht casten, da sie im Prinzip nicht sichtbar ist. Es hilft mir leider auch nicht, daß diese die Klasse "OptionImpl "extended; wenn ich nämlich versuche,
Object optObject = ctobj.get(ctx.getLanguage());
OptionImpl opt = (OptionImpl)optObject;
fällt er mir genauso auf die Füße; ich weiß jetzt auch wieso:
in meinem Modul (bei Ausführung der Methode, nicht zur Compilezeit) bekomme ich die Fehlermeldung:
java.lang.NoClassDefFoundError: de/espirit/firstspirit/access/editor/value/OptionImpl
hmmmm.... wenn ich die client.jar in das Modul packe würde es vermutlich möglicherweise gehen.. aber: ist es sinnvoll (gerade im Hinblick auf Serveraktualisierung ?) - andere Möglichkeiten ?
Edit: Ich stelle gerade fest, daß ich im Eclipse mit 4.2 arbeite, es aber auf einem 4.1er teste; vergeßt die Ausführungen vorerst.. :smileyblush:
Edit 2: In 4.1 ist es so, daß die innere Klasse ContentOption die Klasse Option extended.
Die Fehlermeldung, die ich beim casten auf (Option) erhalte ist:
java.lang.IncompatibleClassChangeError: Found class de.espirit.firstspirit.access.editor.value.Option, but interface was expected
Gruß,
Michael
Hallo Michael,
da kann ich erst mal nicht weiter helfen (hab kein 4.1 mehr), Wenn ich mich ganz dunkel erinnere hatte ich glaub so was ähnliches. Die Combobox lieferte mir glaub immer nur die ausgewählte ID des Datensatzes, keine Entity (wenn ich die von einer Inhaltsseite ermittelt habe)
Dann musste man mittels der gelieferten ID den zugehörigen Datensatz suchen.
Wie gesgt, das nur unter Vorbehalt. Da muss ein Profi ran
Gruß
Andreas
Hi,
wäre ein Workaround.. wie käme ich sinnvollerweise an die ID heran ?
sourcePage.getData().get("st_teasertyp").getEditor().getValue()
gibt sie mir zwar zurück, ist leider deprecated.. :smileycry:
Gruß,
Michael
Hmm, ich bekomme wie gesagt die Entity geliefert.
Vieleicht nur "sourcePage.getData().get("st_teasertyp")"??? Irgendetwas muss man eigentlich bekommen ...
Wenn Du die ID hast => KeyValue.add(...) liefert Fehler
Mehr kann ich leider auch nicht helfen (und bin nun erst mal in Urlaub)
Gruß Andreas
Es geht um die ID des Datensatzes, richtig?
Auf der Option können sie einfach ein getValue() machen, dann bekommen Sie die Entity zurück. Falls nicht, bitte mal das komplette Skript, die verwendeten Eingabekomponenten und die FirstSpirit Version posten.
Hi, (gerade frisch aus dem Urlaub zurück)
Ich habe es mit getValue zurück - sie ist wie gesagt, da oben zwar deprecated, aber das war mir jetzt auch egal..
Ansonsten habe ich es mittlerweile jetzt anders gelöst - ich hole mir die Werte einmalig aus der DB heraus (sind nicht viele), packe sie in eine Map und gleiche sie jeweils mit der zugeordneten ID ab.
Gruß,
Michael