Questions & Answers

SOLVED
plamka
I'm new here

Daten aus einem schema auslesen

Jump to solution

Hi,

ich wรผrde gerne Inhalte mehrmalls aus einem Schema auslesen und diese auf nur !!! einer Seite mit verschiedenen Navigationen ausgeben.

1. Es wird z.B. ein Schema mit Produkten erstellt.

2. Es wird eine neue Datenquelle angelegt

3. Es wird eine Vorlage erstellt, die alle Produkte mit einer bestimmten Kategorie und der dazugehรถrige Naviagtion auslieรŸt.

Die auszulesenden Daten lassen sich im Daten Tab beim Anlegen des Sturkturknoten noch weiter eingrenzen. z.B. Kategorie ID.

Bis dahin alles wunderbar. Ein Beispiel findet ihr hier

http://mithrasenergy.com/content/de/products/productcategories.html

Ich wรผrde gerne auf einer Seite zuerst die Produkte A auslesen (mit Navigation), dadrunter z.B. bischen Text ausgeben und dann die Produkte B auslesen. Geht das รผberhaupt??? Man kan die Absatzvorlagen beliebig kombinieren, es ist aber nicht mรถglich mehrfach eine Schema Absatzvorlage zu verwenden. Wie auch denn, wenn im Strukturknoten spรคter fรผr die ganze Seite der Filter fรผr die Daten gesetzt wird.

Wie gehe ich am besten vor, oder habe ich etwas รผbersehen?

0 Kudos
1 Solution

Accepted Solutions
hoebbel
Crownpeak employee

Hallo Herr Zasada,

Seitengruppen und Ausgabe auf einer einzelnen Seite widerspricht sich aber Smiley Wink

Seitengruppen stellen "nur" eine Navigation zwischen einzelnen Seiten, die sich im selben Ordner befinden, zur Verfรผgung.

Was Sie wohl haben wollen ist eine Absatzvorlage, รผber die der Redakteur eine Liste von Projekten anhand der entsprechenden Kategorie auswรคhlen kann.

Eine Lรถsungsmรถglichkeit wรคre eine Combobox, die automatisch alle gรผltigen Kategorien darstellt:

รผber CMS_INCLUDE_OPTIONS

User: FIRSTDoku

Pass: FSdown_V2

Die Produkte dann einfach รผber eine contentSelect Funktion ausgeben, die den Rรผckgabewert der Combobox als Einschrรคnkung auf die Kategorie benutzt.

Viele Grรผsse aus Dortmund,

  Holger Hรถbbel

View solution in original post

0 Kudos
10 Replies
hoebbel
Crownpeak employee

Hallo Herr Zasada,

Sie kรถnnen Datenbankinhalte entweder รผber eine Tabellenvorlage oder รผber eine ContentSelect Funktion ausgeben.

Die wichtigsten Unterschiede zwischen diesen beiden Ausgabearten:

Tabellenvorlage

  • Die Ausgabe der Datensรคtze kann รผber mehrere Seiten gesplittet werden
  • Die Abfrage kann vom Redakteur leicht konfiguriert werden
  • Es ist nur eine Tabellenvorlage pro Seite zulรคssig

ContentSelect Funktion

  • Die Ausgabe der Datensรคtze erfolgt immer auf einer einzelnen Seite
  • Die Konfiguration der Funktion erfolgt im Template. Eine Konfiguration der Abfrage durch den Redakteur ist nur eingeschrรคnkt mรถglich [Templateentwickler muss entsprechende Eingabekomponenten zur Verfรผgung stellen]
  • Es kรถnnen beliebig viele Content Select Funktionen auf einer Seite verwendet werden

Sie kรถnnen das Problem also einfach lรถsen, indem Sie die Produkte รผber entsprechende ContentSelect Funktionen ausgeben, sofern ich Sie richtig verstanden habe und Sie tatsรคchlich nur eine Seite ausgeben wollen.

Ansonsten besteht natรผrlich die Mรถglichkeit, mehrere Seiten mit Contentprojektionen (Ausgabe mittels Tabellenvorlagen) in einer Seitengruppe zusammenzufassen. Die Seitengruppe umfasst dann alle erzeuten Seiten - die Trennung entsprechender Navigationen ist aber dann etwas "kniffelig".

Viele Grรผsse aus Dortmund,

  Holger Hรถbbel

0 Kudos

Hallo Herr Hรถbbel,

ja, dass haben Sie schon richtig verstanden. Ihr Vorschlag mit den Seitengruppen hรถrt sich gut an.

Gibt es zu den Seitengruppen und wie man diese einsetzt eine Doku?

Evtl. werde ich eine Navigation an der Stelle garnicht benรถtigen. Ich wรผrde gerne auf einer Seite die neuesten Produkte zu X Kategorien ausgeben, wobei ich den Filter eben gerne pro Kategorie setzen wรผrde (eine Navigation wird es somit an dieser Stelle wohl doch nicht geben).

Vielen Dank

0 Kudos
hoebbel
Crownpeak employee

Hallo Herr Zasada,

Seitengruppen und Ausgabe auf einer einzelnen Seite widerspricht sich aber Smiley Wink

Seitengruppen stellen "nur" eine Navigation zwischen einzelnen Seiten, die sich im selben Ordner befinden, zur Verfรผgung.

Was Sie wohl haben wollen ist eine Absatzvorlage, รผber die der Redakteur eine Liste von Projekten anhand der entsprechenden Kategorie auswรคhlen kann.

Eine Lรถsungsmรถglichkeit wรคre eine Combobox, die automatisch alle gรผltigen Kategorien darstellt:

รผber CMS_INCLUDE_OPTIONS

User: FIRSTDoku

Pass: FSdown_V2

Die Produkte dann einfach รผber eine contentSelect Funktion ausgeben, die den Rรผckgabewert der Combobox als Einschrรคnkung auf die Kategorie benutzt.

Viele Grรผsse aus Dortmund,

  Holger Hรถbbel

0 Kudos

Vielen Dank,

Ich habe noch ein Frage.

Das Objekt CMS_INCLUDE_OPTIONS liefert als Rรผckgabewert einen String zurรผck.

Wenn ich den Paramter "st_productCategories" in meiner Query setze, wird der Wert anscheinend nicht richtig gesetzt.

Wenn ich ein Number Feld definiere und dieses in der FUNCTION setze, funktioniert alles einwandfrei.

Muss ich den Wert "st_productCategories" noch in einen Number Wert umwandeln und wenn ja, wie mache ich das ?

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

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

  <CMS_VALUE_PARAM name="category" value="st_productCategories" />

  <QUERY entityType="products">

   <FILTERPARAM parameter="category" datatype="java.lang.Integer" value="194"/>

     <EQ attribute="product_categoriesList.fs_id" parameter="category"/>

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

  </QUERY>

</CMS_FUNCTION>

</CMS_HEADER>

GruรŸ und vielen Dank

David

0 Kudos
hoebbel
Crownpeak employee

Hallo David,

hier mรผsste ein toNumber ausreichend sein, also

<CMS_VALUE_PARAM name="category" value="st_productCategories.toNumber" />

Vorausgesetzt, Du bekommst tatsรคchlich den String mit der ID zurรผck.

Tipp: Mit $CMS_VALUE(st_productCategories + " / " + st_productCategories.class)$ bekommst Du den Rรผckgabewert und seien Klasse ausgegeben.

Weiterer Tipp: Es ist gut mรถglich, dass st_productCategories.toNumber ein long und kein interger zurรผckgibt. Dann einfach im Query den Parametertyp [datatype="java.lang.Long"] entsprechend anpassen Smiley Wink

Viele Grรผsse aus Dortmund,

  Holger

0 Kudos

Die Methode toNumber liefert fรผr den Typ CMS_INPUT_COMBOBOX keinen Wert zurรผck.

-------------------------------------------------------------------------------------------------------------

<CMS_INPUT_COMBOBOX name="st_productCategories" useLanguages="no">

    <CMS_INCLUDE_CONTENT type="entries" table="admProducts.product_categories">

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

    </CMS_INCLUDE_CONTENT>

    <LANGINFOS>

      <LANGINFO lang="DE" label="Kategorien"/>

      <LANGINFO lang="*" label="Categories"/>

    </LANGINFOS>

  </CMS_INPUT_COMBOBOX>

-------------------------------------------------------------------------------------------------------------

0 Kudos
hoebbel
Crownpeak employee

Das hier sollte klappen (wenn die ID des Datensatzes der kategory benรถtigt wird)

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

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

  <CMS_VALUE_PARAM name="category" value="st_productCategories.value.getId()" />

  <QUERY entityType="products">

   <FILTERPARAM parameter="category" datatype="java.lang.Integer" value="194"/>

     <EQ attribute="product_categoriesList.fs_id" parameter="category"/>

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

  </QUERY>

</CMS_FUNCTION>

</CMS_HEADER>

Anmerkung: Es sollte anstelle von CMS_INCLUDE_CONTENT besser CMS_INCLUDE_OPTIONS verwendet werden.

Siehe auch Anmerkung ganz unten auf der Seite:

http://www.e-spirit.com/odfs42/de/vorlagenentwicklung/formular/cmsinclude/cms_include_options/option...

User: FIRSTDoku

Pass: FSdown_V2

0 Kudos

Super vielen Dank.

Jetzt gehts

0 Kudos

Hallo Herr Hรถbbel,

mir ist noch ein kleiner Fehler aufgefallen, dass das Sortieren der Datensรคtze nicht richtig funktioniert. Mit der Angabe     <ORDERCRITERIA attribute="date"  descending="0" /> werden alle Datensรคtze richtig aufsteigend nach dem Datum sortiert. Wenn ich die Sortierreihenfolge auf     <ORDERCRITERIA attribute="date"  descending="1" /> setze, werden die Daten willkรผrlich durcheinander sortiert, mรผssten aber absteigend sortiert werden. Ist dieses Problem schon bekannt oder mache ich etwas falsch?

Gibt es einen Workaround um meinen Result umzusortieren, z.B. revert des Results?

Schรถne GrรผรŸe

David Zasada

0 Kudos

Type a product name