Search the FirstSpirit Knowledge Base
Hallo zusammen,
in einem Projekt nutzen wir RemoteMedia um eine zentrale Medienverwaltung zu realisieren. Um die im Medien-Master referenzierten Medien zu identifizieren habe ich mir folgendes Template gebaut:
=====================================================
$CMS_SET(mediaClass,class("de.espirit.firstspirit.access.store.mediastore.Media"))$
$CMS_FOR(m, st_folder.getFolder().getChildren(mediaClass, true))$
$CMS_VALUE(m.getDisplayName(#global.Language))$<br>
$CMS_VALUE(m.getIncomingReferences())$<br>
$CMS_REF(m)$<br/><br/>
$CMS_END_FOR$
=====================================================
Es soll rekursiv über den Mediastore iterieren und zunächst die Medien ausgeben, die in den Zielprojekten referenziert werden. Ich habe den Hinweis bekommen, dass dies über die Funktion getIncomingReferences() gehen soll.
Leider ist es so, dass bei Referenzen in Datenquellen, diese nicht ausgegeben werden.
So sehen die Ausgaben für Medien aus, die nicht in einer Datenquelle referenziert werden:
=====================================================
Babilon_Freizeit_306_408
[ContentReferenceEntry[PrjContentRef[7/ContentRef[abc.Galerien[448]]],C]]
/fs4preview/preview/1931/media/DE/current/2155/ORIGINAL/x.jpg
Produkte-ABC-CDF
[IdReferenceEntry[IdRef[PAGESTORE:1466/S],remote]]
/fs4preview/preview/1931/media/DE/current/3407/ORIGINAL/x.JPG
=====================================================
Bei Medien, die in Datenquellen referenziert werden, sieht es so aus. Das Feld ist leer:
=====================================================
galerie-img-full-20
[]
/fs4preview/preview/1931/media/DE/current/2165/ORIGINAL/x.jpg
=====================================================
Muss für Medien, die in Datenquellen referenziert werden, eine andere Funktion abgefragt werden?
Was ist "st_folder" für eine Eingabekomponente? Könnten Sie den Code des Formulars auch noch posten?
Ansonsten hilft vielleicht den Referenzgraphen neu berechnen zu lassen:
In der Admin-Konsole den Auftrag "repair references" auswählen und ausführen. (vorsichtshalber in beiden Projekten)
Hallo,
in älteren FirstSpirit Versionen gab es einen Bug, der genau dieses Verhalten ausgelöst hat. Dieser wurde mit der Version 4.2.456 gefixt. Welche FirstSpirit Version wird denn eingesetzt?
Viele Grüße
Rouven Broszeit
Wir nutzen Version 4.2.461
Das ist komisch. Es gelingt mir auch nicht, dieses Verhalten nachzustellen.
Wenn man im Kontextmenü des Mediums "Abhängigkeiten anzeigen" ausführt, werden die Abhängigkeiten in den Datenquellen aber (als eingehende Referenzen) angezeigt?
Gibt folgendes Skript die Referenzen zur Datenquelle aus, wenn man <referenzname> durch den entsprechenden Referenznamen ersetzt?
referenzname = "<referenzname>";
mediastore = context.getProject().getUserService().getStore(de.espirit.firstspirit.access.store.Store.Type.MEDIASTORE, false);
media = mediastore.getMediaByUid(referenzname);
references = media.getIncomingReferences();
print("Anzahl Referenzen: " + references.length);
print(references);
Leider werden bei den Medien, die im Zielprojekt in einer Datenquelle referenziert werden, weder Abhängigkeiten angezeigt noch kann ich die Referenzen über Ihr angehängtes Skript ausgeben. Es erscheint lediglich eine leer Klammer [].
Die Gegenprobe für Medien, die über Absatz- und Seitenvorlagen referenziert werden, zeigt die Abhängigkeiten und auch die Ausgabe durch Ihr Skript.
Was ist "st_folder" für eine Eingabekomponente? Könnten Sie den Code des Formulars auch noch posten?
Ansonsten hilft vielleicht den Referenzgraphen neu berechnen zu lassen:
In der Admin-Konsole den Auftrag "repair references" auswählen und ausführen. (vorsichtshalber in beiden Projekten)
Hallo Herr Broszeit,
vielen Dank für den Tipp mit dem Auftrag "Repair References". Dadurch funktioniert es nun. Die fehlenden Referenzen werden nun dargestellt.
Kann es sein, das die Datensätze auch aus anderen Projekten editiert werden? Das könnte zu dem beobachteten Verhalten geführt haben.
Nein, die Datensätze der Datenquellen werden nur in den jeweiligen Zielprojekten lokal editiert.