Search the FirstSpirit Knowledge Base
Hallo Community,
was ist denn "Best Practice" um den Store Element Typ abzufragen.
Beispiel:
if(element.isTypeOf("contentstore")
Viele Grüße
Timo
Hallo Timo,
ich verwende mal dein Beispiel:
if(element.getUidType() == IDProvider.UidType.CONTENTSTORE) {...}
Viele Grüße
Michaela
Hallo Timo,
ich verwende mal dein Beispiel:
if(element.getUidType() == IDProvider.UidType.CONTENTSTORE) {...}
Viele Grüße
Michaela
Vielen Dank!
Hallo,
ergänzend noch eine meiner Meinung nach etwas schönere Variante:
Dadurch dass die IDProvider-Subinterfaces alle eine Konstante UID_TYPE haben, kann man auch folgendes machen:
if(element.getUidType() == Page.UID_TYPE)
Das hat den Vorteil, dass man den "richtigen" UidType nicht erst in der API nachschlagen muss - es gibt da ja einige Objekte die sich den UID-Namensraum teilen (z.B. Ordner in der Inhalteverwaltung und Inhaltsseiten haben beide UidType.PAGESTORE) und andere Fälle, in denen es eine Trennung gibt (Ordner in der Medienverwaltung haben UidType.MEDIASTORE_FOLDER, Medien haben MEDIASTORE_LEAF).
Wenn man die Konstanten benutzt, muss man sich hierum nicht kümmern und die Gefahr ist geringer, den falschen Typ zu benutzen.
Viele Grüße
Michael
Hallo Michaela,
kann ich das auch innerhalb eines CMS_VALUE überprüfen?
$CMS_VALUE(stage.st_image.getUidType() == Media.UID_TYPE)$
bzw.
$CMS_VALUE(stage.st_image.getUidType() == IDProvider.UidType.MEDIASTORE_LEAF)$
liefern beide "false", obwohl es sich bei stage.st_image um ein Medienobjekt handelt.
$CMS_VALUE(stage.st_image.getUidType())$
gibt auch MEDIASTORE_LEAF aus.
Grüße
Jo
Hallo Joachim,
ja, das geht - allerdings nicht so 😉
In Deiner Variante fragst Du technisch gesehen nicht eine Konstante ab sondern eine "Variable" Media bzw. IDProvider - und die gibt es natürlich nicht.
Gehen sollte es mit
$CMS_VALUE(stage.st_image.uidType == class("de.espirit.firstspirit.access.store.mediastore.Media").UID_TYPE)$
bzw. mit
$CMS_VALUE(stage.st_image.uidType == class("de.espirit.firstspirit.access.store.IDProvider$UidType").MEDIASTORE_LEAF)$
Wobei die erste Variante die schönere ist weil man sich keine Gedanken um die "passenden" UID-Typen machen muss.
Viele Grüße
Michael
Hallo Michael,
super, so klappt's dann auch mit dem Vergleich.
Danke & Grüße
Jo