christian_brock
I'm new here

PreviewId Base64 erzeugen und auswerten

Hallo liebe Community,

ich habe eine Frage zu der PreviewId().

Folgendes beispielhaftes Szenario:

Wir entwickeln gerade ein Modul, welches uns ein spezifisches Inline Edit Funktion im ContentCreator für einen FS_INDEX und FS_CATALOG ermöglicht. Um dem Script so wenig Parameter wie möglich mit zu geben und es möglichst generisch zu halten und den reload-Prozess nachdem bearbeiten des Formulars zu ermöglichen, ergab sich die Möglichkeit viele Informationen aus der previewId heraus zu ziehen.

Aus diesem Grund kam die Idee dafür eine Lib zu schreiben, die eine previewId erzeugen und auswerten kann. Bevor wir aber einfach loslegen und eventuell Zeit investieren, die gar nicht notwendig ist, wollte ich mal fragen ob es vielleicht schon eine Lösung innerhalb von FS gibt oder es in Planung ist diese Funktionalität zu entwickeln.

Gedacht wäre der Aufruf der Lib dann ungefähr so:

// hier kann ein beliebiger Element eingegeben werden und es wird eine entsprechende previewId erzeugt.

String previewID = previewIdAgent.decode(IDProvider idProvider);


// dies wäre der Fall das aus einer vorhanden previewId der entsprechende IDProvider erzeugt werden kann

IDProvider provider = previewIdAgent.encode(String previewId);


Dieses Ansatz wäre auch nicht nur für Headless-Projekte sinnvoll sondern man hätte auch in Projekten hinsichtlich des Serialisieren/Deserialisieren von FS-Objekten einen Standard.

Vielen Dank schon mal und viele Grüße
Christian

0 Kudos
4 Replies
felix_reinhold
Returning Responder

Hallo Christian,

meines Wissens nach gibt es keine kleine, schlanke Inlinefunktion o. ä.

Aber ab Java 8 kannst du ja einfach die java.util.Base64-Klasse nutzen. FirstSpirit bringt mit der fs-saccess.jar zwar auch nochmal 2 Base64 Klassen mit -
die sind aber nicht Teil der API.

One-Liner: class("java.lang.String").new(class("java.util.Base64").Decoder.decode(previewId())

Würde die Klassendefinition bzw. den Decoder aber in eine Variable auslagern.

Viele Grüße

Felix

0 Kudos
Peter_Jodeleit
Crownpeak employee

Das Format der PreviewId sollte nicht direkt interpretiert werden. In Kombination mit CaaS v3 und dem CaaS-Connect Modul wird mittlerweile auch ein anderes, nicht mehr Base-64 kodiertes Format genutzt.

Über TPP_SNAP.getElementStatus(previewId) kommt man für beide Formate an die relevanten Informationen zu dem adressierten Objekt.

Wenn das nicht alle use-cases abdeckt sind wir sehr daran interessiert, diese kennenzulernen.

Liebe Grüße

Peter

Peter
0 Kudos

Hallo Peter,

vielen Dank für deine Rückmeldung.
Bei deinem Lösungsvorschlag handelt es sich um eine JavaScript-Api. Wir wollten jedoch das ganze in Java lösen.

Viele Grüße
Christian

0 Kudos

Okay, dann würde ich vorschlagen, parallel zum eingeschlagenen Weg einen Feature-Request einzustellen. Damit habt ihr dann zukünftig einen sicheren und gewarteten Weg, um das gewünschte zu erreichen. Bitte unterfüttert den Request mit euren Use-Cases, damit auch wirklich das richtige gebaut wird.

Grüße,
Peter

Peter
0 Kudos