Search the FirstSpirit Knowledge Base
Hallo zusammen,
wir stehen gerade etwas aufm Schlauch.
Gegeben ist eine externe Datenbank mit einer Vielzahl an Produktdaten. Die relevante Tabelle ist so aufgebaut, dass für ein Produkt pro Sprache eine Datenzeile existiert und diese mit der Spalte "Language" dem Sprachkanal entsprechend befüllt ist.
Wir möchten nun Detailseiten generieren (Content Projektion), aber um natürlich zu vermeiden das im Sprachkanal "DE" auch alle Produkte zu "ES", etc.. generiert werden haben wir an eine Abfrage gedacht.
Offenbar wird bei einer ContentProjektion leider "%lang%" als Value nicht durch den Aktuellen Sprachkanal ersetzt und die Datenreiter-Konfiguration (Content2Params) is auch global für die PageRef.
Jetzt die Frage:
- Ist unser Vorhaben überhaupt möglich?
Versucht haben wir schon in der Seitenvorlage über "#global.node.content2Params.setFilterParams({"lang" : #global.language.abbreviation})" - die Content2Params zu verändern, aber ohne Erfolg. - Vermutlich weil ja während die Detailseite erzeugt wird, die Query schon ausgeführt wurde und bereits ein Ergebnis vorliegt.
Unser Abfrage (ohne %lang%) sieht folgendermaßen aus:
<QUERY entityType="Products">
<FILTERPARAM parameter="lang" datatype="java.lang.String" value="de"/>
<LIKE attribute="Language" parameter="lang"/>
</QUERY>
Grüße,
Lars
Ein kleines Update:
wir können zwar verhindern das die nicht relevanten Detailseiten generiert werden in dem wir "#global.stopgenerate" verwenden:
$CMS_SET(#global.stopGenerate, !#row.Language.equalsIgnoreCase(#global.language.abbreviation))$
ABER mit einem negativen Impact:
Die PageRef hat bereits eine URL bekommen, so dass bei gleichnamigen Produkten dann für das "richtige" Produkt ggfs. eine "-2" an die URL angehängt wird. Das ist leider nicht ganz so schön
Vielleicht hat ja doch noch jemand ne Idee wie man die Content-Projection "sprachabhängig" machen kann.
Grüße,
Lars
Hallo Lars,
ich bin mir nicht sicher, ob ich den Aufbau eurer Datenquelle verstehe. Sehe ich es richtig, dass ihr pro Datensatz jeweils eine Spalte besitzt, in der die zugehörige Sprache hinterlegt ist?
Also beispielsweise:
Produkt 1 | DE | Beschreibung
Produkt 1 | EN | Beschreibung
Produkt 1 | FR | Beschreibung
Produkt 1 | ES | Beschreibung
In diesem Fall wäre meine Idee, Filter zu verwenden, mit der die Datensätze anhand ihrer Sprache gruppiert werden könnten. Ich bin mir aber nicht sicher, inwieweit dies mit externen Datensätzen funktioniert.
Viele Grüße
Michaela
Hallo Michaela,
genau diese Datenstruktur haben wir vorliegen.
Das Problem bei einem Filter auf der PageRef habe ich, dass dort mit dem Parameter-Wert "%lang%" wohl nicht der aktuelle Sprachkanal eingesetzt wird. - Also im Gegensatz zu einer Content-Selektion. Zumindest bekommen wir keinerlei Detailseiten generiert wenn wir das versuchen.
Da man allerdings nur einen Parameter-Wert (pro Parameter natürlich) definieren kann, haben wir die Sprachkanalabhängige Filterung nicht realisieren können.
Oder haben wir was übersehen?
Btw: FS 5.1.507
Grüße,
Lars
Hallo Marian,
leider nein, wie oben beschrieben arbeiten wir aktuell auch mit "stopGenerate", das hat leider für die URLs (SEO URL Creator, Produktname als URL) eine Auswirkungen:
"Die PageRef hat bereits eine URL bekommen, so dass bei gleichnamigen Produkten dann für das "richtige" Produkt ggfs. eine "-2" an die URL angehängt wird. Das ist leider nicht ganz so schön"
Momentan leben wir damit, scheinbar gibt es wohl auch keine bessere Lösung. Trotzdem Danke für den Hinweis.
Grüße,
Lars