Hallo, ich hätte auch noch ein Problem dazu.
Ich habe eine Tabellenvorlage, in deren Header diese Funktion steht:
<CMS_FUNCTION name="contentSelect" resultname="fr_partner">
<CMS_PARAM name="schema" value="further_content" />
<CMS_VALUE_PARAM name="p_id" value="partner_id" />
<QUERY entityType="partner">
<FILTERPARAM parameter="p_id" datatype="java.lang.String" value="partner_id"/>
<LIKE attribute="fk_partner" parameter="p_id"/>
</QUERY>
</CMS_FUNCTION>
Diese funktioniert und ich rufe sie in einer For-Schleife auf, in der sich bei jedem Durchlauf der Wert der Variable partner_id ändert.
Problem 1 ist, dass der Inhalt das Ergebnis der Funktion sich beim zweiten Schleifendurchlauf nicht mehr ändert, weil das gecached wird.
Also habe ich nach diesen Anleitungen hier ein Script "get_partner_details" mit diesem Code angelegt:
//!BeanShell
out = new StringBuilder();
out.append("<CMS_HEADER>");
out.append("<CMS_FUNCTION name=\"contentSelect\" resultname=\"fr_partner\" context=\"PAGE\">");
out.append("<CMS_PARAM name=\"schema\" value=\"further_content\" />");
out.append("<CMS_VALUE_PARAM name=\"p_id\" value=\"").append(my_id).append("\" />");
out.append("<QUERY entityType=\"partner\" >");
out.append("<FILTERPARAM parameter=\"p_id\" datatype=\"java.lang.String\" value=\"").append(my_id).append("\" >");
out.append("<LIKE attribute=\"fk_partner\" parameter=\"p_id\" />");´
out.append("</QUERY>");
out.append("</CMS_FUNCTION>");
out.append("</CMS_HEADER>");
result.setValue(out.toString());
Der Aufruf in der For-Schleife ist nun dieser:
$CMS_RENDER(script:"get_partner_details",my_id:partner_id)$
Leider bekomme ich nun überhaupt kein Ergebnis mehr.
Ich habe beim Beanshell-Script den Haken "Immer aktiv" gesetzt und es ist ein Scripttyp "Vorlage". Aufgerufen wird das Beanshellscript in einer Datenquelle, die als Absatz in einer Seite angelegt ist.