Zur Erstellung einer csv Datei gehe ich über alle PageRefs in einem bestimmten Verzeichnis in der Struktur und lese die
Werte von Elementen in der ersten Absatzvorlage aus.
Das klappt mit CMS_INPUT_DATE und CMS_INPUT_DOM hervorragend.
Leider geht es nicht mit FS_REFERENCE und FS_LIST.
Ich hab schon alles möglich ausprobiert und komme nicht weiter.
Danke und Grüße
Petra Hewera-Harz
Das sind die Formularelemente in der Absatzvorlage, bei denen das Auslesen nicht klappt:
<FS_LIST name="st_kat_news" hFill="yes" height="300">
<DATASOURCE type="database" useLanguages="no">
<ACTIONS>
<ACTION name="ADD">
<PARAM name="select-ui">popup</PARAM>
</ACTION>
<ACTION name="REMOVE"/>
<ACTION name="DOWN"/>
<ACTION name="UP"/>
</ACTIONS>
<COLUMNS>
<COLUMN show="no">#identifier</COLUMN>
<COLUMN show="yes">#released</COLUMN>
<COLUMN show="yes" sortOrder="ascending">cs_kat</COLUMN>
</COLUMNS>
<LAYOUT>
<ADD component="stackedview" constraint="hide"/>
<ADD component="overview" constraint="center"/>
<ADD component="toolbar" constraint="top"/>
</LAYOUT>
<TABLE>vertriebsportal.news_kategorien</TABLE>
</DATASOURCE>
<LANGINFOS>
<LANGINFO lang="*" label="News-Kategorien auswählen..."/>
</LANGINFOS>
</FS_LIST>
<FS_REFERENCE name="st_bild_news" allowEmpty="no" hFill="yes" imagePreview="yes" upload="yes">
<FILTER>
<ALLOW type="picture"/>
<HIDE type="file"/>
<HIDE type="folders"/>
</FILTER>
<LANGINFOS>
<LANGINFO lang="*" label="Bild für News-Detail-Seite" description="Bitte wählen Sie ein Bild aus."/>
</LANGINFOS>
<PROJECTS>
<LOCAL name=".">
<SOURCES>
<FOLDER name="images" store="mediastore"/>
</SOURCES>
</LOCAL>
</PROJECTS>
</FS_REFERENCE>
Das ist die html Ausgabe (Ausschnitt):
über PageRefs in einem bestimmten Folder in der Struktur gehen und dann die Werte der Formularelemente in Variablen schreiben
$CMS_FOR(media, folder.getChildren(class("de.espirit.firstspirit.access.store.sitestore.PageRef"),true))$
Klappt:
$CMS_SET(set_datum)$
$CMS_IF(ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().getForm().findEditor("st_datum_news") != null)$
$CMS_IF(!ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().get(null,"st_datum_news").isEmpty && !ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().get(null,"st_datum_news").isNull)$
$CMS_VALUE(ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().get(null,"st_datum_news").get())$
$CMS_ELSE$
empty
$CMS_END_IF$
$CMS_ELSE$
null
$CMS_END_IF$
$CMS_END_SET$
Klappt:
$CMS_SET(set_teasertext)$
$CMS_IF(ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().getForm().findEditor("st_teasertext_news") != null)$
$CMS_IF(!ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().get(null,"st_teasertext_news").isEmpty && !ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().get(null,"st_teasertext_news").isNull)$
$CMS_VALUE(ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().get(null,"st_teasertext_news").get())$
$CMS_ELSE$
empty
$CMS_END_IF$
$CMS_ELSE$
null
$CMS_END_IF$
$CMS_END_SET$
Klappt nicht und wirft einen Fehler bei der Publizierung (siehe unten):
$CMS_SET(set_teaserbild)$
$CMS_IF(ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().getForm().findEditor("st_bild_news") != null)$
$CMS_IF(!ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().get(null,"st_bild_news").isEmpty && !ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().get(null,"st_bild_news").isNull)$
$CMS_VALUE(ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().get(null,"st_bild_news").get())$
$CMS_ELSE$
empty
$CMS_END_IF$
$CMS_ELSE$
null
$CMS_END_IF$
$CMS_END_SET$
Klappt nicht, wirft aber auch keinen Fehler:
$CMS_SET(set_kat)$
$CMS_IF(ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().getForm().findEditor("st_kat_news") != null)$
$CMS_IF(!ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().get(null,"st_kat_news").isEmpty && !ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().get(null,"st_kat_news").isNull)$
$CMS_VALUE(ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().get(null,"st_kat_news").get())$
$CMS_ELSE$
empty
$CMS_END_IF$
$CMS_ELSE$
null
$CMS_END_IF$
$CMS_END_SET$
Fehler:
ERROR 20.08.2014 13:44:38.020{g-node=48940} (de.espirit.firstspirit.generate.SiteProduction): Must provide a valid editor value and language!
inside of: Template 'Seitenreferenzen' (id=48939)
inside of: $CMS_TRIM(level:3)$ - at 1, 1
inside of: $CMS_RENDER(template:st_render, folder:st_pagereferenz.get())$ - at 7, 1
inside of: Format Template 'seitenreferenz_news' (id=48942)
inside of: $CMS_FOR( media, folder.getChildren(class("de.espirit.firstspirit.access.store.sitestore.PageRef"), true) )$ - at 2, 1
inside of: $CMS_IF( MediaRef.toString.trim() == "/de/news/uebersicht.xhtml" )$ - at 83, 2
inside of: $CMS_TRIM(level:3)$ - at 85, 73
inside of: $CMS_VALUE(set_teaserbild)$ - at 85, 92
inside of: $CMS_IF( ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().getForm().findEditor("st_bild_news") != null )$ - at 47, 2
inside of: $CMS_IF( ! ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().get(null, "st_bild_news").isEmpty && ! ref(media).page.getBodyByName("inhalt").getFirstChild().getFormData().get(null, "st_bild_news").isNull )$ - at 48, 3
java.lang.IllegalArgumentException: Must provide a valid editor value and language!
at de.espirit.firstspirit.client.access.editor.ValueChangeInjector.<init>(ValueChangeInjector.java:32)
at de.espirit.firstspirit.client.access.editor.AbstractEditorValue.createValueChangeInjector(AbstractEditorValue.java:599)
at de.espirit.firstspirit.client.access.editor.AbstractEditorValue.listenTo(AbstractEditorValue.java:566)
at de.espirit.firstspirit.client.access.editor.AbstractEditorValue.get(AbstractEditorValue.java:557)
at de.espirit.firstspirit.client.access.editor.ReferenceEditorValueImpl.get(ReferenceEditorValueImpl.java:79)
at de.espirit.firstspirit.client.access.editor.ReferenceEditorValueImpl.get(ReferenceEditorValueImpl.java:63)
at de.espirit.firstspirit.store.access.DataWrappingFormData$EditorValueWrappingFormField.get(DataWrappingFormData.java:177)
at de.espirit.firstspirit.store.access.DataWrappingFormData$EditorValueWrappingFormField.isEmpty(DataWrappingFormData.java:167)
at FormField_isEmpty_1730.invoke(Unknown Source)
at de.espirit.firstspirit.parser.eval.Invoker$MethodWrapperImpl.invoke(Invoker.java:957)
at de.espirit.firstspirit.parser.eval.Invoker.invokeMethod(Invoker.java:475)
at de.espirit.firstspirit.parser.eval.Invoker.resolveAttribute(Invoker.java:440)
at de.espirit.firstspirit.parser.eval.Invoker.getAttribute(Invoker.java:233)
at de.espirit.firstspirit.parser.EvaluatorImpl$1.getProperty(EvaluatorImpl.java:83)
at de.espirit.firstspirit.parser.EvaluatorImpl.getAttribute(EvaluatorImpl.java:198)
at de.espirit.firstspirit.parser.impl.Attribute.eval(Attribute.java:20)
at de.espirit.firstspirit.parser.impl.DottedExpression.eval(DottedExpression.java:72)
at de.espirit.firstspirit.parser.impl.NotExpression.eval(NotExpression.java:23)
at de.espirit.firstspirit.parser.impl.CombinedExpression.eval(CombinedExpression.java:208)
at de.espirit.firstspirit.parser.impl.CmsIfImpl.print(CmsIfImpl.java:81)
at de.espirit.firstspirit.parser.EvaluatorImpl.print(EvaluatorImpl.java:480)
at de.espirit.firstspirit.parser.impl.AbstractPrintable.print(AbstractPrintable.java:81)
at de.espirit.firstspirit.parser.EvaluatorImpl.print(EvaluatorImpl.java:480)
at de.espirit.firstspirit.parser.impl.CmsIfImpl.print(CmsIfImpl.java:87)
at de.espirit.firstspirit.parser.EvaluatorImpl.print(EvaluatorImpl.java:480)
at de.espirit.firstspirit.parser.impl.AbstractPrintable.print(AbstractPrintable.java:81)
at de.espirit.firstspirit.parser.eval.PrintableEnhancer.print(PrintableEnhancer.java:25)
at PrintableEnhancer_print_Printable_132.invoke(Unknown Source)
at de.espirit.firstspirit.parser.eval.Invoker$MethodWrapperImpl.invoke(Invoker.java:957)
at de.espirit.firstspirit.parser.eval.Invoker.invokeMethod(Invoker.java:475)
at de.espirit.firstspirit.parser.eval.Invoker.invokeMethod(Invoker.java:407)
at de.espirit.firstspirit.parser.eval.Invoker.evalMethod(Invoker.java:214)
at de.espirit.firstspirit.parser.EvaluatorImpl$1.invokeMethod(EvaluatorImpl.java:86)
at de.espirit.firstspirit.parser.EvaluatorImpl.invokeMethod(EvaluatorImpl.java:203)
at de.espirit.firstspirit.parser.EvaluatorImpl.print(EvaluatorImpl.java:224)
at de.espirit.firstspirit.parser.impl.CmsValueImpl.print(CmsValueImpl.java:69)
at de.espirit.firstspirit.parser.EvaluatorImpl.print(EvaluatorImpl.java:480)
at de.espirit.firstspirit.parser.impl.AbstractPrintable.print(AbstractPrintable.java:81)
at de.espirit.firstspirit.parser.impl.CmsTrimImpl.print(CmsTrimImpl.java:165)
at de.espirit.firstspirit.parser.EvaluatorImpl.print(EvaluatorImpl.java:480)
at de.espirit.firstspirit.parser.impl.AbstractPrintable.print(AbstractPrintable.java:81)
at de.espirit.firstspirit.parser.EvaluatorImpl.print(EvaluatorImpl.java:480)
at de.espirit.firstspirit.parser.impl.CmsIfImpl.print(CmsIfImpl.java:89)
at de.espirit.firstspirit.parser.EvaluatorImpl.print(EvaluatorImpl.java:480)
at de.espirit.firstspirit.parser.impl.AbstractPrintable.print(AbstractPrintable.java:81)
at de.espirit.firstspirit.parser.impl.CmsForImpl$LoopEvaluator.eval(CmsForImpl.java:259)
at de.espirit.firstspirit.parser.impl.CmsForImpl$LoopEvaluator.access$100(CmsForImpl.java:164)
at de.espirit.firstspirit.parser.impl.CmsForImpl.print(CmsForImpl.java:144)
at de.espirit.firstspirit.parser.EvaluatorImpl.print(EvaluatorImpl.java:480)
at de.espirit.firstspirit.parser.impl.AbstractPrintable.print(AbstractPrintable.java:81)
at de.espirit.firstspirit.parser.EvaluatorImpl.print(EvaluatorImpl.java:480)
at de.espirit.firstspirit.parser.impl.CmsRenderImpl.print(CmsRenderImpl.java:68)
at de.espirit.firstspirit.parser.EvaluatorImpl.print(EvaluatorImpl.java:480)
at de.espirit.firstspirit.parser.impl.AbstractPrintable.print(AbstractPrintable.java:81)
at de.espirit.firstspirit.parser.impl.CmsTrimImpl.print(CmsTrimImpl.java:165)
at de.espirit.firstspirit.parser.EvaluatorImpl.print(EvaluatorImpl.java:480)
at de.espirit.firstspirit.parser.impl.AbstractPrintable.print(AbstractPrintable.java:81)
at de.espirit.firstspirit.parser.EvaluatorImpl.print(EvaluatorImpl.java:480)
at de.espirit.firstspirit.store.access.sitestore.PageRefImpl.render(PageRefImpl.java:936)
at de.espirit.firstspirit.store.access.sitestore.PageRefImpl.createContent(PageRefImpl.java:894)
at de.espirit.firstspirit.generate.SiteProduction.generateFile(SiteProduction.java:271)
at de.espirit.firstspirit.generate.SiteProduction.generateFiles(SiteProduction.java:220)
at de.espirit.firstspirit.generate.SiteProduction.render(SiteProduction.java:197)
at de.espirit.firstspirit.generate.SiteProduction.render(SiteProduction.java:149)
at de.espirit.firstspirit.generate.SiteProduction.render(SiteProduction.java:152)
at de.espirit.firstspirit.generate.SiteProduction.start(SiteProduction.java:119)
at de.espirit.firstspirit.server.scheduler.GenerateTaskExecutor.run(GenerateTaskExecutor.java:241)
at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl$TaskCallable.executeLocal(ScheduleManagerImpl.java:2174)
at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl$TaskCallable.executeLocal(ScheduleManagerImpl.java:2157)
at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl$TaskCallable.call(ScheduleManagerImpl.java:2085)
at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:549)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:419)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:37)