andreas_pabst
Occasional Observer

CMS_REF / ref() für Medien ohne Generierung

Hallo Community,

gibt es eine Möglichkeit, Medienreferenzen (über CMS_REF bzw. ref()) auszugeben, ohne dass dadurch die Medien generiert werden?

Hintergrund ist, dass ich eine Auflistung mit allen Medien und deren Berechtigungen sowie eine weitere Seite mit den Medien und deren Änderungszeitpunkten erstellen möchte.

In dieser Seite sollen alle Medien enthalten sein, auch wenn sie nicht generiert werden würden (z.B. weil sie nirgends referenziert sind).

Ich habe den Media.getStoredUrl()-Aufruf versucht, dieser liefert aber leider null-Werte.

Falls es hilft, hier ist das Skript, das ich für die Ausgabe verwende (angelehnt an das Skript "JSON-Ausgabe von Medien" aus der Firstspirit Hilfe)

$CMS_TRIM(level:3)$

$CMS_SET(storeType, class("de.espirit.firstspirit.access.store.Store$Type"))$

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

$CMS_FOR(file, #global.project.userService.getStore(storeType.MEDIASTORE, true).children(mediaClass, true))$

$CMS_REF(file)$=$CMS_VALUE(ref(file).meta("roles", "inherit").getAllowed("access").toString(","), default:"")$

$CMS_END_FOR$

$CMS_END_TRIM$

Wir verwenden FirstSpirit 2020-06.

0 Kudos
1 Reply
hoebbel
Crownpeak employee

Hallo Andreas,

wenn es nur darum geht, eine einzelne [Text-]Seite mit Informationen für alle Medien auszugeben, wäre der einfachste Weg:

  • entsprechende Seite & Seitenreferenz anlegen, aber beide nicht freigeben (somit wird die Seite bei einer normalen Veröffentlichung nicht erzeugt)
  • Eine Generierung im ServerManager->Projekt-Eigenschaften->Auftragsverwaltung anlegen
  • Die Option Teilgenerieurng durchführen für folgende Startpunkte aktivieren und als Startpunkt die Seite auswählen
  • Die beiden Optionen "Freigabestand generieren" und "Medien im Generierungsverzeichnis erzeugen" deaktivieren

--> wenn der Auftrag ausgeführt wird, wird die entsprechende Seite erzeugt (da der aktuelle Stand und nicht der Freigabestand verwendet wird), nicht aber die Medien (da diese nicht ins Generierungsverzeichnis kopiert werden sollen)

ACHTUNG: Wenn danach eine Veröffentlichung ausgeführt wird, hängt es davon ab, welcher Veröffentlichungstyp verwendet wird, ob FirstSpirit die Medien dabei direkt aus dem Repository streamed oder nur die Seite veröffentlicht!

Wenn die Veröffentlichung über einen der drei Standardtypen ausgeführt wird, sollte noch ein zweiter Generierungsauftrag nach dem ersten und vor der Veröffentlichung ausgeführt werden, der eine andere Seite erzeugt. Bei diesem muss dann die Option "Medien im Generierungsverzeichnis erzeugen" aktiviert sein. Das sollte das Streamen der Medien aus der ersten Generierungsaktion verhindern.

Viele Grüße

Holger

0 Kudos