TimoMeister
Returning Responder

Store Element Typ abfragen

Jump to solution

Hallo Community,

was ist denn "Best Practice" um den Store Element Typ abzufragen.

Beispiel:

if(element.isTypeOf("contentstore")

Viele Grüße

Timo

1 Solution

Accepted Solutions
MichaelaReydt
Community Manager

Hallo Timo,

ich verwende mal dein Beispiel:

if(element.getUidType() == IDProvider.UidType.CONTENTSTORE) {...}

Viele Grüße

Michaela

View solution in original post

0 Kudos
6 Replies
MichaelaReydt
Community Manager

Hallo Timo,

ich verwende mal dein Beispiel:

if(element.getUidType() == IDProvider.UidType.CONTENTSTORE) {...}

Viele Grüße

Michaela

0 Kudos

Vielen Dank!

0 Kudos

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

0 Kudos

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

0 Kudos

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. Smiley Happy

Danke & Grüße

Jo

0 Kudos