Search the FirstSpirit Knowledge Base
Hallo,
ich habe in FS 5.1.209 in einer GCAPage eine FS_LIST mit Links:
<FS_LIST name="pt_links" hFill="yes" height="170">
<DATASOURCE type="inline" useLanguages="yes">
<LABELS>
<LABEL lang="*">if(#item.lt_sitestoreref.isEmpty, "Please fill the link", #item.lt_linktext.isEmpty, #template.name, #item.lt_linktext)</LABEL>
<LABEL lang="DE">if(#item.lt_sitestoreref.isEmpty, "Bitte pflegen Sie den Link", #item.lt_linktext.isEmpty, #template.name, #item.lt_linktext)</LABEL>
</LABELS>
<ACTIONS>
<ACTION name="ADD"/>
<ACTION name="REMOVE"/>
<ACTION name="UP"/>
<ACTION name="DOWN"/>
<ACTION name="EDIT"/>
</ACTIONS>
<COLUMNS>
<COLUMN show="no">#identifier</COLUMN>
<COLUMN show="yes" width="500">#text</COLUMN>
</COLUMNS>
<LAYOUT>
<ADD component="toolbar" constraint="top"/>
<ADD component="overview" constraint="center"/>
<ADD component="stackedview" constraint="hide"/>
</LAYOUT>
<TEMPLATES source="linktemplates">
<TEMPLATE uid="dashboard_link"/>
</TEMPLATES>
</DATASOURCE>
<LANGINFOS>
<LANGINFO lang="*" label="Linklist"/>
<LANGINFO lang="DE" label="Linkliste"/>
</LANGINFOS>
</FS_LIST>
Diese Liste hat drei Links eingepflegt. Gebe ich den Inhalt im gleichen Template aus:
$CMS_FOR(link, pt_links)$
$CMS_VALUE(link)$
$CMS_END_FOR$
Funktioniert alles einwandfrei. Greife ich aber in einem anderen Template über die API auf die Liste zu, dann ist sie leer.
meine_GCAPage.getFormData().get(#global.language,"pt_links").get()
bzw.
meine_GCAPage.getFormData().get(#global.language,"pt_links").isEmpty == true
Wie kann das sein? Andere Elemente wie z.B. Textfelder CMS_INPUT_TEXT kann ich mir genau so holen und sie sind korrekt befüllt. Nur die FS_LIST bleibt über diesen Aufruf leer. Was kann da das Problem sein?
Viele Grüße,
C. Klingbeil
Hallo Carola,
vielleicht kann dir dieser Blogbeitrag weiterhelfen: Klick
In dem Beitrag geht es zwar vorrangig um die Verwendung von Entities. Im Abschnitt Update wird jedoch auch der Zugriff auf die Inhalte einer FS_LIST beschrieben.
Viele Grüße
Michaela
Mir erschließt sich nicht, was mir in diesem Blog weiterhelfen sollte. Wie ich an das Objekt FormEditList komme, ist mir klar. Hatte ich ja bereits geschrieben:
meine_GCAPage.getFormData().get(#global.language,"meine_fs_list").get()
Ich erhalte es ja auch korrekt. Nur ist die Liste trotz Inhalt leer. Wenn ich das Gleiche mit anderen Templates als einer GCAPage mache (Section, Page), funktioniert der Zugriff auf eine FS_LIST ja auch korrekt. Nur eben nicht in der GCAPage. Gibt es denn da evtl. einen Known-Bug?
Hallo Carola,
wie kommst Du bitte an Deine 'meine_GCAPage' ran? Kannst Du uns bitte diesen Code posten?
Grüße & schöne Weihnachtstage
Marian
Hallo Carola,
ich habe das ganze in einem Mithras-Projekt noch einmal versucht zu reproduzieren.
Mit den Zeilen:
$CMS_SET(links,#global.gca("gca_common_header"))$
$CMS_VALUE(links.getFormData().get(#global.language,"st_links").get())$
werden mir alle Einträge meiner in einer GCA-Seite enthaltene FS-List ausgegeben. Ich habe sie in das Seitentemplate "Homepage" eingefügt.
Verändere ich die zweite Zeile zu:
$CMS_VALUE(links.getFormData().get(#global.language,"st_links").get().get(0))$
erhalte ich nur den ersten Eintrag. Dies entspricht dann dem Blogposting-Beispiel.
Im GCA-Template selber würde mein Aufruf wie folgt aussehen:
$CMS_VALUE(#global.page.getFormData().get(#global.language,"st_links").get())$
Weist dein Code einen Unterschied auf, der die Divergenz erklären würde?
Viele Grüße
Michaela
Hallo Carola,
benötigst Du noch weitere Hilfe oder hat Dir die Antwort von Michaela bereits geholfen?
In diesem Fall wäre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere
Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lösung
gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.
Viele Grüße
Thorsten