Questions & Answers

SOLVED
Bratzell
I'm new here

Relativen Pfad zur Datei in der Medien-Struktur

Jump to solution

Hallo zusammen,

ist es mรถglich den relativen Pfad zu einer Datei in der Medien-Struktur zu erhalten,

soweit ich mich nicht irre wird das in den Eigenschaften vom Ordner als "UID Path" bezeichnet.

Das ganze ist Teil einer CSV-Tabelle erstellt als Page-Template zu der ich hier schon mal Fragen gestellt habe.

Um genauer zu werden wรผrde ich gerne das mir fรผr Datei.xy folgendes nachher ausgegeben wird:

OrdnerA/OrdnerB/Datei.xy

So sieht die Tabelle aktuelle aus:

$CMS_TRIM(level:3)$

$CMS_SET(set_mediastoreRoot, #global.project.userService.getStore(class("de.espirit.firstspirit.access.store.Store$Type").MEDIASTORE, !#global.preview))$

Refferenzname|Ablageort|DateigrรถรŸe|Seitenrefferenz|MD5-Prรผfsumme

$CMS_SET(Media, class("de.espirit.firstspirit.access.store.mediastore.Media"))$

$CMS_FOR(for_media,set_mediastoreRoot.getChildren(Media,true))$

$CMS_IF(for_media.getType()==Media.FILE)$

$CMS_SET(set_file, for_media.getFile(#global.language))$

$CMS_IF(set_file.extension=="pdf")$

$CMS_TRIM(level:4)$

$CMS_VALUE(for_media.uid + "|")$

$CMS_REF(for_media)$|

$CMS_VALUE(set_file.getSize() + "|")$

$CMS_END_TRIM$

$CMS_END_IF$

$CMS_END_IF$

$CMS_END_FOR$

$CMS_END_TRIM$

Das $CMS_REF(for_media)$

Gibt mir eine URL zurรผck im Preview Modus.

Ist das im Staging dann genauso oder zeigt er mir dann im Staging es so an wie ich es oben beschrieben habe?

GrรผรŸe

Artur

0 Kudos
1 Solution

Accepted Solutions
mbergmann
Crownpeak employee

Hallo Artur,

das $CMS_REF(..)$ liefert immer eine URL. Im Fall der Preview ist das eine Art interne technische URL (letztlich weil in der Preview alles รผber das Preview-Servlet ausgeliefert wird). In der "richtigen" Generierung ist das dann die "normale" URL, also letztlich der Pfad unter dem das Medium erzeugt wird.

In FirstSpirit ist es nun so, dass es verschiedene wรคhlbare Mechanismen zur URL-Erzeugung gibt und sogar komplett eigene implementiert werden kรถnnen (Stichwort UrlFactory).

EINER der Varianten sind die sog. "DefaultURLs", wo die Pfade anhand der Referenznamen erzeugt werden. Ein anderer sind die AdvancedUrls, die u.A. auf den Anzeigenamen basieren und auรŸerdem - sobald einmal ermittelt - bei spรคteren Generierungen stabil bleiben (auch wenn das Medium danach verschoben wird).

Wenn ihr DefaultUrls nutzt, reicht das also fรผr Deinen Anwendungsfall.

Fรผr eine allgemeine, vom URL-Erzeugungsmechanismus unabhรคngige Lรถsung mรผsstest Du letztlich im Template vom Medienobjekt in einer Schleife immer weiter mit .getParent() "hochlaufen" und die Informationen der so besuchten Ordner aufsammeln und selbst zu einem Pfad zusammensetzen.

Viele GrรผรŸe

Michael

View solution in original post

0 Kudos
2 Replies
mbergmann
Crownpeak employee

Hallo Artur,

das $CMS_REF(..)$ liefert immer eine URL. Im Fall der Preview ist das eine Art interne technische URL (letztlich weil in der Preview alles รผber das Preview-Servlet ausgeliefert wird). In der "richtigen" Generierung ist das dann die "normale" URL, also letztlich der Pfad unter dem das Medium erzeugt wird.

In FirstSpirit ist es nun so, dass es verschiedene wรคhlbare Mechanismen zur URL-Erzeugung gibt und sogar komplett eigene implementiert werden kรถnnen (Stichwort UrlFactory).

EINER der Varianten sind die sog. "DefaultURLs", wo die Pfade anhand der Referenznamen erzeugt werden. Ein anderer sind die AdvancedUrls, die u.A. auf den Anzeigenamen basieren und auรŸerdem - sobald einmal ermittelt - bei spรคteren Generierungen stabil bleiben (auch wenn das Medium danach verschoben wird).

Wenn ihr DefaultUrls nutzt, reicht das also fรผr Deinen Anwendungsfall.

Fรผr eine allgemeine, vom URL-Erzeugungsmechanismus unabhรคngige Lรถsung mรผsstest Du letztlich im Template vom Medienobjekt in einer Schleife immer weiter mit .getParent() "hochlaufen" und die Informationen der so besuchten Ordner aufsammeln und selbst zu einem Pfad zusammensetzen.

Viele GrรผรŸe

Michael

0 Kudos

Hallo Michael,

danke fรผr die Hilfe.

GrรผรŸe

Artur

0 Kudos

Type a product name