MarcusDau
Occasional Collector

Dynamischer contentSelect funktioniert nicht

Hallo!

Ich versuche den Thread hier https://community.e-spirit.com/message/1556 auch für ich zu adaptieren.

Nun habe ich aber ein Problem bei der Parameter-Übergabe. Wenn ich folgenden Code aufrufe, dann klappt es problemlos:

$CMS_RENDER(script:"dynamic_contentselect",buchstabe:"E")$

Rufe ich aber das ein wenig dynamischer auf

$CMS_SET(VARIABLE)$E$CMS_END_SET$

$CMS_RENDER(script:"dynamic_contentselect",buchstabe:VARIABLE)$

dann klappt es nicht mehr.

Jemand ne Idee woran das liegen kann?

Grüße

Marcus

0 Kudos
9 Replies
hoebbel
Crownpeak employee

Hallo Marcus,

versuch mal $CMS_SET(VARIABLE,"E")$.

Hintergrund:

$CMS_SET(VARIABLE)$E$CMS_END_SET$ --> Templatefragment

$CMS_SET(VARIABLE,"E")$ --> String

Viele Grüsse aus Dortmund,

  Holger

MarcusDau
Occasional Collector

Jein, ein wenig, aber...

Ich glaube es liegt am Freitag, aber ich bin zu doof. Und zwar möchte ich aus der URI "glossar-e.jsp" den Buchstaben "e" auslesen und dann an den contentSelect übergeben.

Damit kann ich dann an den CMS_SET keinen direkten Buchstaben übergeben, sondern eine Variable.

Und die kommt im CMS_SET nicht an. Selbst ein

$CMS_SET(b, request.getParameter("buchstabe"))$

geht nicht. Direkte Ausgabe von request.getParameter("buchstabe") klappt, aber nicht, wenn ich es so per CMS_SET setze.

Hilfe! Freitag und ich sehe den Fehler nicht...

0 Kudos

Hallo Marcus,

das Request-Objekt steht zur Generierungszeit noch nicht zur Verfügung, deswegen wird das wie beschrieben nicht funktionieren. Wie genau sieht denn der Anwendungsfall aus, wieso muss der Parameter aus dem Request gelesen werden?

Viele Grüße

Jörg Stephan

0 Kudos

Hallo Marcus,

Du vermischst gerade Anweisungen welche während der Generierung ausgeführt werden und solche welche zur Laufzeit ausgeführt werden.

Unabhängig ob Deine Syntax oben korrekt ist:

Ein ContentSelect (oder aus CMS_SET) wird während der Generierung interpretiert.

Ein Auslesen eines RequestParameters zur Laufzeit wird somit Dein Ergebnis nichtmehr beeinflussen.

0 Kudos
MarcusDau
Occasional Collector

Okay, ich sage ja. Freitag. Richtig, da vermische ich gerade Dinge! Merke auch gerade, dass mein Ansatz völlig falsch ist. Würde eh nie gehen, ohne dass ich FS Integration nutzen würde, aber das möchte ich hier nicht!

Trotzdem, vielleicht habt Ihr ne sinnvolle Lösungsidee:

Der Anwendungsfall ist folgender: ich habe eine Datenquelle, in der ein Glossar gepflegt wird. Nehmen wir mal an, es gibt zwei Felder Überschrift und Text. In der Überschrift steht sowas drin wie "Affe", "Aal" oder "Bär" und im Text jeweils dazu ein beschreibender Text.

Nun möchte ich aus der Quelle auslesen, welche Anfangsbuchstaben des Alphabets mit Einträgen belegt sind. Das funktioniert problemlos und daraus kann ich mir eine Liste mit Links generieren. Ich wollte nun gerne die Links auf glossar-a.jsp, glssar-b.jsp usw. lauten lassen, da sie im alten CMS auch so bezeichnet sind. SEO-mässig schöner als glossar_16395.jsp oder dergleichen.

Kann man so etwas geschickt lösen in FS? Habt Ihr so etwas schon mal gemacht?

0 Kudos

Hallo Marcus,

was spricht dagegen für die Links (glossar-a.jsp, ...) jeweils in der Struktur eine Seitenreferenz anzulegen und auf den Seiten dann Contentprojektionen/Contentselects zu benutzen die im Query die Einträge mit dem gewünschten Anfangsbuchstaben selektieren?

Viele Grüße

Jörg Stephan

0 Kudos
MarcusDau
Occasional Collector

Dass es keine wirklich dynamische Lösung ist. Ich muss 26 Seitenreferenzen anlegen, obwohl ich evtl. nur 15 brauche. Das macht in meinen Augen keinen Sinn.

Wenn später mal ein 16. Anfangsbuchstabe dazukommt oder auch mehrere, dann müsste das System das erkennen und die fehlenden Seiten ergänzen.

Das muss man doch irgendwie dynamisch erzeugen/anlegen können. Oder sehe ich das falsch?

0 Kudos

Hallo Marcus,

wenn die Seiten nicht manuell angelegt werden sollen, kann man ein Script schreiben, was vor der Generierung läuft und anhand der Einträge in der Glossar-Datenquelle die entsprechenden Seiten in der Struktur inkl. Abfragen anlegt.

Viele Grüße

Jörg Stephan

0 Kudos
aVogt
Returning Creator

Hallo Marcus,

wir haben im Intranet 6 Seiten für ein Glossar angelegt (Seite 1- Buschtaben A-E, Seite 2 - Buchstaben F - K, usw.). Die Seiten nennen dann glossar_a-e.jsp.

Über ein Javascript wird die entsprechende Seite angesprungen. Wenn die x-Anfangsbuchstaben pro Seite in je einem DIV liegen kann man die nicht benötigten auch ausblenden (display:none).

Grüße Andreas

0 Kudos