- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Auflistung aller Datei Refferenzen .getIncomingReferences
Hallo zusammen,
ist es mรถglich herauszufinden auf welchen Seiten eine Datei genutz wird?
Ich habe unterm Text meinen Code angegeben und es dort mit $CMS_VALUE(for_media.getIncomingReferences)$ versucht.
Die anzeige in der Preview ist jedoch nich so wie es gerne hรคtte.
รndert sich das beim Staging oder muss ich eine andere Lรถsung finden.
Das ganze ist Teil einer CSV-Tabelle erstellt als Page-Template zu der ich hier schon mal Fragen gestellt habe.
$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|CRC
$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_VALUE(for_media.getIncomingReferences)$|$CMS_REF(for_media)$|$CMS_VALUE(set_file.getSize() + "|")$$CMS_VALUE(set_file.getCrc())$
$CMS_END_TRIM$
$CMS_END_IF$
$CMS_END_IF$
$CMS_END_FOR$
$CMS_END_TRIM$
Grรผรe
Artur
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Artur,
das Ganze ist leider etwas komplexer. Das .getIncomingReferences() liefert erstmal eine Liste (bzw. Array) von ReferenceEntries. Darรผber kommst Du jeweils รผber getReferencedElement() an das Objekt von dem die Referenz ausgeht.
Das kann allerdings alles mรถgliche sein, insbesondere ist es normalerweise keine Seitenreferenz sondern eher eine Page oder eine Section oder ein Datensatz (theoretisch kann es noch mehr sein wie eine globale Inhaltsseite, ein Ordner in der Inhalts- oder Strukturverwaltung (รผber Metadaten) usw., aber eher unwahrscheinlich - kommt aufs Projekt an).
D.h. ab hier musst Du eine Fallunterscheidung machen. Z.B. von einer Section erst zur Page laufen.
Zur Page mรผsstest Du dann (wieder รผber getIncomingReferences()) alle ( ! ) Seitenreferenzen finden - erst DIE haben ja eine URL.
Fรผr Datensรคtze wird es noch komplizierter...
Viele Grรผรe
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Artur,
das Ganze ist leider etwas komplexer. Das .getIncomingReferences() liefert erstmal eine Liste (bzw. Array) von ReferenceEntries. Darรผber kommst Du jeweils รผber getReferencedElement() an das Objekt von dem die Referenz ausgeht.
Das kann allerdings alles mรถgliche sein, insbesondere ist es normalerweise keine Seitenreferenz sondern eher eine Page oder eine Section oder ein Datensatz (theoretisch kann es noch mehr sein wie eine globale Inhaltsseite, ein Ordner in der Inhalts- oder Strukturverwaltung (รผber Metadaten) usw., aber eher unwahrscheinlich - kommt aufs Projekt an).
D.h. ab hier musst Du eine Fallunterscheidung machen. Z.B. von einer Section erst zur Page laufen.
Zur Page mรผsstest Du dann (wieder รผber getIncomingReferences()) alle ( ! ) Seitenreferenzen finden - erst DIE haben ja eine URL.
Fรผr Datensรคtze wird es noch komplizierter...
Viele Grรผรe
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Michael,
Ich hab das jetzt soweit hinbekommen hier der fertige Code:
$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|Dateigroesse|Seitenrefferenz|CRC
$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_FOR(for_media_item, for_media.getIncomingReferences())$$CMS_IF(for_media_item.getId() == -1)$$CMS_SET(media_value_1, for_media_item.getReferencedElement.getId())$$CMS_VALUE(media_value_1 + " ")$$CMS_ELSE$$CMS_SET(media_value_2, for_media_item.getReferencedObject())$$CMS_SET(media_parent_1, media_value_2.getParent())$$CMS_SET(media_parent_2, media_parent_1.getParent())$$CMS_FOR(media_site_1, media_parent_2.getIncomingReferences())$$CMS_SET(media_site_2, media_site_1.getReferencedObject())$$CMS_REF(media_site_2)$$CMS_END_FOR$$CMS_END_IF$$CMS_END_FOR$"|$CMS_VALUE(set_file.getCrc())$
$CMS_END_TRIM$
$CMS_END_IF$
$CMS_END_IF$
$CMS_END_FOR$
$CMS_END_TRIM$
Der Grรถรe Block ab "CMS_...... muss so sein weil aus irgendeinem Grund ein Absatz in der .csv ein Leerzeichen verursacht.
Daher ist alles in eine Zeile gepresst worden.
Grรผรe
Artur

