Techinar: Neue Eingabekomponenten und DataAccessPlugins

mbergmann
Crownpeak employee
Crownpeak employee
6 6 3,733

Entwickler und technische Projektleiter laden wir herzlich zu diesem exklusiven Partner-Techinar ein. Wir zeigen die Einsatzmöglichkeiten und Vorteile von FS_CATALOG und FS_INDEX. Außerdem sehen Sie, wie Sie durch Nutzung von DataAccessPlugins nahezu beliebige Dritt-Applikationen mit geringem Aufwand integrieren.

 

Datum: Mittwoch, 7. September 2016, 11 – 12 Uhr

 

Unsere Implementierungspartner wünschen sich Informationen aus erster Hand – nicht nur auf vertrieblicher Ebene. Mit jeder FirstSpirit-Version werden neue Funktionen ausgerollt, die ihren Kunden neue Möglichkeiten bieten. Vielen Entwicklern fehlt aber neben dem täglichen Projektgeschäft oft die Zeit, um Release-Notes zu studieren und neue Features selbst auszuprobieren. Wir wollen sie dabei unterstützen: In unserem Webinar für Developer stellen wir in einem kompakten Online-Seminar neue Funktionen vor und vermitteln Best-Practices rund um FirstSpirit. Ein projekterfahrener e-Spirit Senior Consultant präsentiert in einer einstündigen Session Insiderwissen zu einem aktuellen Thema und beantwortet Fragen der Teilnehmer.

 

Zur Aufzeichnung (WMV, 142 MB)

6 Comments
philippr
Returning Spectator

Danke für die gelungene Präsentation (es ergeben sich ungeahnte Möglichkeiten Smiley Wink)

Super, dass ihr die Beispielimplementierung und das Projekt zur Verfügung stellt, das erleichtert das "onboarding" erheblich!

Könnt ihr in etwa abschätzen, was euch der Aufbau des PoC an Aufwand gekostet hat? Es sind ja schon ein paar Klassen zu schreiben bis dann alles wie gewünscht funktioniert...

Viele Grüße,

Philipp

mbergmann
Crownpeak employee
Crownpeak employee

Hallo Philipp,

es sind zwar einige Klassen, in denen steckt aber oft nicht viel Code. Es kommt natürlich auch darauf an wieviele Aspekte man implementiert und wie einfach der Zugriff auf die (Fremd-)Objekte ist - insbesondere das Suchen.

Wenn man generell in der FS-API und Modulentwicklung fit ist und zum ersten Mal ein DAP baut würde ich mal grob 3-7 Tage veranschlagen - je nach Umfang/Komplexität.

Im gezeigten Beispiel werden (bewusst) recht viele Aspekte benutzt, dadurch ist das dort etwas mehr Code.

Es geht teilweise auch einiges an Zeit für den "Kleinkram" drauf wie das Designen der Buttons. Dafür habe ich übrigens mal eine Utility-Klasse "MagicIcons" gebaut (wird auch im Beispiel benutzt) - damit braucht man nur noch ein Bild pro Button und die Farbvarianten (SA/CC) werden automatisch erzeugt.

Mit Caching wird das Ganze dann natürlich etwas aufwändiger.

Viele Grüße

Michael

philippr
Returning Spectator

Danke.

Das liegt auch in dem Bereich den ich jetzt vom ersten Draufschauen veranschlagt hätte. War bei etwa 5 Tagen und wie du schon sagst, je nach dem um was es sich bei dem Drittsystem handelt kann das beliebig komplex werden...

mbergmann
Crownpeak employee
Crownpeak employee

Hallo zusammen,

es kam die Frage auf wie man denn im Template an die "D"-Objekte kommt. Das ist extrem einfach: 

$CMS_FOR(d, st_myFsIndex.values())$

     $CMS_VALUE(d.someMethodDefinedInD(someParam1, someParam2, .....))$

$CMS_END_FOR$

Das heißt: Beim Iterieren über den FS_INDEX mit values() ist die Iterationsvariable tatsächlich ein D und man kann alle Methoden darauf aufrufen, die man definiert hat.

Ihr seht das auch im Beispielprojekt:

In der Variante des FS_INDEX+DatasetDataAccessPlugin ist das D ein "Dataset" aus der FS-API. Im Tagging-Beispiel ist es ein "TagEntry"-Objekt aus dem Beispielmodul - da wird im Template z.B. der Titel ausgegeben mit

$CMS_FOR(for_tag,st_tags_v52.values())$

   $CMS_VALUE(for_tag.getName(#global.language))$

   <br />

$CMS_END_FOR$

Im Modul gibt es dazu im TagEntry die Methode getName(Language lang).

Achtung: Das funktioniert so allerdings nur in dem Template in dem der FS_INDEX auch direkt definiert ist und nicht wenn man in ein FormData eines anderen Objektes "hineingreift".

Viele Grüße

Michael

mbergmann
Crownpeak employee
Crownpeak employee

Hallo zusammen,

im Beispielprojekt war noch ein kleiner Copy/Paste-Fehler im Absatztemplate "product_links_index" - zur Ermittlung der ID der im FS_INDEX referenzierten Datensätze muss man natürlich über die Entity gehen:

<a href="$CMS_REF(ss_product_details, contentId:_product.getEntity().id)$">

Einen kleinen Kommentar habe ich auch noch ergänzt - wichtig ist hier die Info, dass das DatasetDataAccessPlugin eine Implementierung von DataAccessPlugin<Dataset> ist. Die "Ds" sind also in diesem Fall Dataset-Objekte aus der FirstSpirit-API.

Ich habe gerade nochmal ein aktualisiertes Projekt hochgeladen.

Viele Grüße

Michael

rrichter
Occasional Collector
Version history
Last update:
‎08-22-2024 07:50 AM
Updated by:
Authors