Sebastian1
I'm new here

Frage zu Tabellenvorlage bei Mithras Projekte DB

Hallo Firstspirit User,

ich habe momentan Schwierigkeiten folgendes Szenario umzusetzen.

Im Mithras Energy Beispielprojekt möchte ich einen JS-Schnippsel in den mittleren Inhalt der Projektdetailsseite einbauen, der als Information die aktuell gewählte Produktkategorie bekommt.

Beispiel:

Wenn ich auf der Produktdetailseite von "Accum 150 L" bin, will ich in das generierte HTML noch die Information der Produktkategorie "Solarspeicher" rendern.

In der "Produkt"-Tabellenvorlage kann ich z.B. sowas hier machen:

$CMS_FOR(p1, #row.Categories_List)$

  $CMS_VALUE(p1.Name_DE)$

$CMS_END_FOR$

Das hilft mir aber nicht, da es sich auf die Datenbankinhalte bezieht. D.h. wenn ein Produkt in mehreren Kategorien ist, werden alle angezeigt.

Kann man irgendwie herausfinden in welcher Kategorie man gerade ist und das schon im Template "programmieren"?

Ich würde mich freuen, wenn mir diesbezüglich jemand weiterhelfen könnte.

Mit freunlichen Grüßen,

Sebastian

3 Replies
m_Schlenz
I'm new here

Hallo Sebastian,

wenn ich den Sachverhalt richtig verstanden habe sollte dies das gewünschte Ergebnis liefern.

$CMS_SET(currentCategory,#global.node.content2Params.query.

selectStatement.parameterValue("category"))$

$CMS_IF(!currentCategory.isEmpty)$

  $CMS_FOR(p1, #row.Categories_List)$

    $CMS_IF(p1.getId() == currentCategory)$

      $CMS_VALUE(p1.Name_DE)$

    $CMS_END_IF$

  $CMS_END_FOR$

$CMS_END_IF$

Grüße

markus

Hallo Markus,

danke für deine Antwort. Hat nicht ganz funktioniert, aber hat mich auf den richtigen Weg gebracht. So funktionierts:

$CMS_SET(currentCategory,#global.node.content2Params.filterParams.get("category"))$

$CMS_IF(!currentCategory.isEmpty)$

  $CMS_FOR(catItem, #row.Categories_List)$

            $CMS_VALUE(catItem.fs_id)$ - $CMS_VALUE(currentCategory)$

    $CMS_IF(catItem.fs_id == currentCategory)$

      $CMS_VALUE(catItem.Name_DE)$

    $CMS_END_IF$

  $CMS_END_FOR$

$CMS_END_IF$

Beste Grüße,

Sebastian

0 Kudos

Hallo Sebastian,

es geht auch in einem Einzeiler:

$CMS_VALUE(#global.node.parent.getFolderLangSpec(#global.language).label())$

Viele Grüße

Jörg