Search the FirstSpirit Knowledge Base
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
vielen Dank für Eure Hilfe
Nicolai
Ü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.
Hallo Peter,
vielen Dank für deine Atwort.Wie komme ich denn auf die contentId? Mein Problem ist, dass ich genau diese contentId brauche.
Ok, da habe ich dein Posting nicht richtig gelesen
Die "contentId" ist die ID des Datensatzes, bei dir also des Glossareintrages.
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
viele Grüße
Nicolai
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
So kommt man z.B. an die ID:
storeElement.getContent2Params().getData(<Sprache oder Sprachkürzel>).get(<index>).get("fs_id")
vielen Dank für die Infos!. ich werden die Lösungsvorschläge bei Gelegenheit ausprobieren.
viele Grüße
Nicolai