Nicolai
I'm new here

Preview URL für Content Projektion

Hallo Community,

Ich habe eine Vorlage GLOSSAR. Diese Absatzvorlage beinhaltet eine Absatzvorlage GLOSSAREINTARG (= Content Projektion), welche einzelne Glossar-Einträge präsentiert. Ich benötige die ID der einzelnen EInträge. Wenn ich mir die einzelne Glossar-Einträge über Preview anschaue, so haben diese folgende URLs:

GLOSSAREINTRAG-->/preview/1007941/site/EN/current/1008140/1032410/contentId=[CONTENT ID]/noEvent/guiLanguage=de/sid=....

contentId entspricht hier der ID in der Content Projektion. Mein Ansatz besteht also darin, contentId über Preview URLs zu bekommen.

Die Preview-URL für GLOSSAR sieht wie folgt aus:

GLOSSAR-->/preview/1007941/site/EN/current/1008140/1032410/noEvent/guiLanguage=de/sid=...

Die Preview-URL hole ich mir in einem Script über  previewURL = context.getStoreElement().getPreviewUrl(null,null,false,4,null), bekomme jedoch für jeden GLOSSAREINTRAG immer die Preview vom GLOSSAR, also /preview/1007941/site/EN/current/1008140/1032410/noEvent/guiLanguage=de/sid=.... Hier steht leider keine contentId drin. Gibt es die Möglichkeit, für jeden GLOSSAREINTARG auch die entsprechende PreviewUrl zu bekommen?

hoffentlich konnte ich die Frage verständlich formulieren Smiley Happy

vielen Dank für Eure Hilfe

Nicolai

0 Kudos
7 Replies
Peter_Jodeleit
Crownpeak employee

Übergib mal als letzten Parameter statt "null" ein "Collections.singletonMap("contentId", <id>)".

Wenn du dir dann die erzeugte URL anschaust, sieht du das dort das Fragment "/contentId=<id>" enthalten ist. Und das ist es, was du auch in der URL-Bar deines Browsers siehst, wenn du über die Vorschau surfst.

Peter
0 Kudos

Hallo Peter,

vielen Dank für deine Atwort.Wie komme ich denn auf die contentId? Mein Problem ist, dass ich genau diese contentId brauche.

0 Kudos

Ok, da habe ich dein Posting nicht richtig gelesen Smiley Wink

Die "contentId" ist die ID des Datensatzes, bei dir also des Glossareintrages.

Peter
0 Kudos

Es war mir bewust, dass es die ID des Datensatzes ist. :smileylaugh: Ich komme an dieser ID einfach nicht dran. Ich habe probiert:

fs_id = storeElement.getContent2Params().getTableTemplate().getEntityType().getAttribute("fs_id");

Dies liefert jedoch nur den Namen und kein Value zurück. Ich bin hier auch nicht weiter gekommen und habe dann versucht, die contentId über PreviewURL zu bekommen.

Ich brauche somit die contentId eines Datensatzes Smiley Happy

viele Grüße

Nicolai


0 Kudos

Hallo Nicolai,

auch wenn ich nicht ganz verstanden habe, was du vor hast, hier mal mein Input.

Du benötigst wohl erstmal die Datensätze, welche in der Contentprojektion berücksichtigt werden (und nicht die Information auf welchem Template die Projektion basiert (wie in Deinem Codefragment)).

Diese erhälst Du so (PseudoCode):

List <Entity> data = storeElement.getData();

oder

List <Entity> data = storeElement.getData(language);

Auf der Entity kannst Du über getValue() die gewünschten Werte abfragen.

Viele Grüße

Jan Tilo

0 Kudos

So kommt man z.B. an die ID:

storeElement.getContent2Params().getData(<Sprache oder Sprachkürzel>).get(<index>).get("fs_id")

Peter
0 Kudos
Nicolai
I'm new here

vielen Dank für die Infos!. ich werden die Lösungsvorschläge bei Gelegenheit ausprobieren.

viele Grüße

Nicolai

0 Kudos