External Assets in Chili

Was kann man damit tun ?

Rolf Schaufelberger

Mit Assets werden im Chili-Publisher Inhalte wie Bilder, PDFs usw. bezeichnet, die in Chili-Dokumente eingefügt werden. Dazu gibt man im Dokument z.B. für ein Bild einen Pfad im Asset-Verzeichnis an, klickt der Benutzer dann auf das Icon zum Einfügen des Bildes wird ihm eine Liste mit Thumbnails und den Namen der Assets angezeigt, aus welcher er dann das gewünschte Bild aussuchen kann. Für viele Fälle ist das ausreichend, aber manchmal benötigt man ein Bilderverzeichis individuell für jeden Benutzer oder der Firma zu welcher der Benutzer gehört oder es gibt andere Anforderungen, die mit der Standardfunktionalität von Chili nicht gehandelt werden können.

In solchen Fällen kommen external Assets ins Spiel.

Wie das Wort "external" bereits vermuten läßt, liegen in diesem Fall die Assets nicht auf dem Chili-Server, sondern auf einem externen System. Damit Chili diese Bilder verwenden kann, muss eine URL angegeben werden, unter welcher Chili die Bilder finden kann. Der entfernte Server muss dann die Anfrage von Chili mit einer Antwort im XML-Format beantworten, die Informationen zu den Bildern wie Name, Typ und eine weiter URL zum Bild selbst enthält.

Ferner kann Chili den entfernten Server nach einer Liste von Bilderverzeichnissen abfragen und erstellt dann aus denn Daten ein Formular, in welchem man das gewünschte Verzeichnis wählen kann.

External Assets und i-printer

Ab der Version 3.16 kann man external Assets zusammen mit dem i-printer für verschiedene Anwendungsfälle (wie Bilderverzeichnis pro Benutzer), direkt verwenden. Wie es geht haben wir hier ausführlich beschrieben.

Zur Verdeutlichung der Funktion zeigen  wir  zwei Anwendungsfälle. Wir nehmen dabei an, die URL des i-printerShops ist http://shop.i-printer.de, im konkreten Fall müssen Sie das durch die URL Ihres Shops ersetzen. 

1. Jeder Benutzer im i-printer hat ein eigenes Bilderverzeichnis und darf selbst weitere Bilder hochladen

Zunächst müssen Sie den Wert der "Directory List URL" eingeben. Das ist immer notwendig, auch wenn alle Assets in einem Verzeichnis liegen. Chili überspringt dann die Auswahl des Ordners automatisch.

In unserem Fall lautet die URL dann:

http://shop.i-printer.de/chili/getImgDirectory.html?show_user=1&user_id=%qs_user_id%

Der Parameter show_user=1 gibt an, dass wir das Benutzerverzeichnis sehen wollen und dazu braucht es ja die Information, um welchen Benutzer es sich handelt. Dazu übergibt i-printer beim Aufruf des Editors die Id des Benutzers in einem Parameter "user_id", dieser kann dann von Chili an i-printer zurückübergeben werden. Dazu dient das Konstrukt %qs_user_id% , das weisst Chil an, diesen Ausdruck durch die konkrete user_id zu ersetzen. 

Als zweites muss die "Asset List URL" eingegeben werden. Diese ist ähnlich wie oben und lautet:

http://shop.i-printer.de/chili/getImgData.html?show_user=1&user_id=%qs_user_id%

Damit der Benutzer eigene Bilder hochladen kann muss als drittes dann noch die "Post URL" angegeben werden, diese lautet hier:

http://shop.i-printer.de/chili/postImgData.html?show_user=1&user_id=%qs_user_id%

2. Im zweiten Beispiel soll es pro Artikel einen Benutzerordner geben

Dazu muss mit die ID des Artikels beim Aufruf von Chili mitgegeben werden. Genauso wie die ID des Benutzers wird diese ID beim Aufruf des Editors mitgegeben mit dem Name "article_id". Entsprechend muss in der URL das dann als

article_id=%qs_article_id%

eingefügt werden. Zur Trennung der Parameter muss dann noch ein "&" davor gesetzt werden. Damit lauten die jeweiligen URLs:

Directory List URL:

http://shop.i-printer.de/chili/getImgDirectory.html?show_user=1&user_id=%qs_user_id%&article_id=%qs_article_id%

Asset List URL:

http://shop.i-printer.de/chili/getImgData.html?show_user=1&user_id=%qs_user_id%&article_id=%qs_article_id%

Post URL:

http://shop.i-printer.de/chili/postImgData.html?show_user=1&user_id=%qs_user_id%&article_id=%qs_article_id%

Odoo image and text block

Grundsätzlich sind die Möglichkeiten mit external Assets unbegrenzt. In einer weiteren Kundenanwendung, welche wir realisiert haben, werden die Bilder z.B. aus der Mitarbeiterdatenbank des Kunden ausgelesen und an Chili weitergereicht.

Eine weitergehende Möglichkeit, mit welcher Bilder dynamisch aus Vorlageninhalten generiert werden können, werden wir in einem der nächsten Blogs beschreiben.