lobanova
Elite Observer

Parameter an contentSelect Funktion übergeben

Jump to solution

Hallo FirstSpirit Community,

auf welche Art und Weise kann man eine contentSelect Header Funktion in der selben Vorlage, wo sie definiert ist, mit einem Parameter aufrufen und wie man diesen in der Funktion selbst deklariert? So in etwa:

<CMS_HEADER>

<CMS_FUNCTION name="contentSelect" resultname="fr_books">

<CMS_PARAM name="schema" value="db_schema" />

<CMS_VALUE_PARAM name="author_id" value="param_authorId" />

<QUERY entityType="Books">

<FILTERPARAM parameter="author_id" datatype="java.lang.Integer"/>

<EQ attribute="authorsList.fs_id" parameter="author_id"/>

<ORDERCRITERIA attribute="date" descending="1"/>

</QUERY>

</CMS_FUNCTION>

</CMS_HEADER>

...

$-- zuerst wird der Autor ermittelt ... --$

$CMS_SET(set_author_id, XXX)$

$-- danach wird die Funktion aufgerufen: --$

$CMS_FOR(for_book, fr_books("param_authorId":set_author_id))$

...

$CMS_END_FOR$

Das Beispiel geht nicht (Fehlerhafte Syntax). Aber wie ist es richtig? Geht so was überhaupt? Wenn nicht, wie kann ich es realisieren?

Vielen Dank.

1 Solution

Accepted Solutions
MarsDD
Occasional Observer

Guten Morgen Olga,

deinen Parameter musst du vorher definieren, bevor du die Header Funktion aufrufst.

<CMS_HEADER>

     <CMS_FUNCTION name="contentSelect" resultname="fr_books">

          ...

          <CMS_VALUE_PARAM name="author_id" value="set_authorId" />

          ...

     </CMS_FUNCTION>

</CMS_HEADER>

$CMS_SET(set_authorId, 0815)$

$CMS_FOR(for_book, fr_books)$

     ...

$CMS_END_FOR$

Viele Grüße

Marcel

View solution in original post

2 Replies
MarsDD
Occasional Observer

Guten Morgen Olga,

deinen Parameter musst du vorher definieren, bevor du die Header Funktion aufrufst.

<CMS_HEADER>

     <CMS_FUNCTION name="contentSelect" resultname="fr_books">

          ...

          <CMS_VALUE_PARAM name="author_id" value="set_authorId" />

          ...

     </CMS_FUNCTION>

</CMS_HEADER>

$CMS_SET(set_authorId, 0815)$

$CMS_FOR(for_book, fr_books)$

     ...

$CMS_END_FOR$

Viele Grüße

Marcel

Hallo Marcel.

Ich dachte, dass man in der contentSelect Funktion nur auf System Objekte und Formular Felder der Vorlage zugreifen darf (anhand von Beispielen in der FirstSpirit Doku), aber so geht es tatsächlich auch. Smiley Happy

Vielen Dank! Smiley Happy

0 Kudos