udorudi
I'm new here

Sortieren der DB-Einträge in CMS_INPUT_COMBOBOX

Jump to solution

Guten Morgen zusammen,

ich würde dem Redakteur in der Absatzvorlage gerne sortierte Einträge zur Auswahl anbieten,

finde aber keine Lösung. Der gesetzte Filter der Datenquelle scheint

hier nicht mehr zu greifen.

<CMS_INPUT_COMBOBOX name="sizecombo" allowEmpty="yes" hFill="no" useLanguages="no">

    <CMS_INCLUDE_OPTIONS type="database">

      <LABELS>

        <LABEL lang="*">#item.name</LABEL>

      </LABELS>

      <TABLE>Portal_DB.doc_universal_sizes</TABLE>

    </CMS_INCLUDE_OPTIONS>

    <LANGINFOS>

      <LANGINFO lang="*" label="Documents for size:" description="TEXT"/>

    </LANGINFOS>

  </CMS_INPUT_COMBOBOX>

Gibt es eine Syntax, die hier mit integriert werden kann, so wie beim Filter ?

<QUERY entityType="DOC_UNIVERSAL_SIZES">

    <ORDERCRITERIA attribute="order" ascending="true" />

</QUERY>

0 Kudos
1 Solution

Accepted Solutions

Hallo,

es ist möglich eine Abfrage in den Datenbank-Schemata anzulegen, welche genau den von Ihnen geposteten Code enthält:(es funktionierte beim Testen zwar auch so, allerdings sollte ascending="true" laut Doku durch descending="0" ausgedrückt werden)

<QUERY entityType="DOC_UNIVERSAL_SIZES">

    <ORDERCRITERIA attribute="order" descending="0"  />

</QUERY>

Diese Abfrage kann dann in den CMS_INCLUDE_OPTIONS der Combobox ausgewählt werden:

<CMS_INPUT_COMBOBOX name="sizecombo" allowEmpty="yes" hFill="no" useLanguages="no">

    <CMS_INCLUDE_OPTIONS type="database">

      <LABELS>

        <LABEL lang="*">#item.name</LABEL>

      </LABELS>

      <TABLE>Portal_DB.doc_universal_sizes</TABLE>

      <QUERY name="<nameDerAbfrage>"/>

    </CMS_INCLUDE_OPTIONS>

    <LANGINFOS>

      <LANGINFO lang="*" label="Documents for size:" description="TEXT"/>

    </LANGINFOS>

  </CMS_INPUT_COMBOBOX>

Zu beachten ist noch der Hinweis aus der Doku:

Enthält die Abfrage den Platzhalter %lang% innerhalb eines ORDERCRITERIA-Tags, wird das ORDERCRITERIA-Tag ignoriert und im Log wird eine entsprechende Meldung angezeigt. 

Dieser Sonderfall scheint hier allerdings nicht zuzutreffen, sofern die Spalte "order" nicht sprachabhängig ist.

Viele Grüße

Rouven

View solution in original post

0 Kudos
4 Replies
broszeit
I'm new here

Hallo,

ja, es gibt das Attribut "sortOrder", welches die Werte KEEP_ORDER, ASCENDING und DESCENDING erlaubt.

Siehe hierzu auch die Doku.

Viele Grüße

Rouven

0 Kudos

Hallo Herr Broszeit,

danke für die Info, dass Attribut hatte ich auch schon eingebaut gehabt, scheint aber nicht zu greifen

bei Füllung durch einer Datenquelle mit zugewiesenem Filter. Die Datensätze sind immer nur nach aufsteigender DB-ID aufgelistet, nicht nach dem gewünschten Feld "order". Oder mache ich noch irgend etwas falsch ?

table_snipp.jpg

0 Kudos

Hallo,

es ist möglich eine Abfrage in den Datenbank-Schemata anzulegen, welche genau den von Ihnen geposteten Code enthält:(es funktionierte beim Testen zwar auch so, allerdings sollte ascending="true" laut Doku durch descending="0" ausgedrückt werden)

<QUERY entityType="DOC_UNIVERSAL_SIZES">

    <ORDERCRITERIA attribute="order" descending="0"  />

</QUERY>

Diese Abfrage kann dann in den CMS_INCLUDE_OPTIONS der Combobox ausgewählt werden:

<CMS_INPUT_COMBOBOX name="sizecombo" allowEmpty="yes" hFill="no" useLanguages="no">

    <CMS_INCLUDE_OPTIONS type="database">

      <LABELS>

        <LABEL lang="*">#item.name</LABEL>

      </LABELS>

      <TABLE>Portal_DB.doc_universal_sizes</TABLE>

      <QUERY name="<nameDerAbfrage>"/>

    </CMS_INCLUDE_OPTIONS>

    <LANGINFOS>

      <LANGINFO lang="*" label="Documents for size:" description="TEXT"/>

    </LANGINFOS>

  </CMS_INPUT_COMBOBOX>

Zu beachten ist noch der Hinweis aus der Doku:

Enthält die Abfrage den Platzhalter %lang% innerhalb eines ORDERCRITERIA-Tags, wird das ORDERCRITERIA-Tag ignoriert und im Log wird eine entsprechende Meldung angezeigt. 

Dieser Sonderfall scheint hier allerdings nicht zuzutreffen, sofern die Spalte "order" nicht sprachabhängig ist.

Viele Grüße

Rouven

0 Kudos

Danke Herr Broszeit,

das war die Lösung: <QUERY name="<nameDerAbfrage>"/>

Viele Grüße

0 Kudos