Typo3, OXID CE und eine XML-Schnittstelle zu Adobe Flash

jansass jansass GmbH, Online

Wir verbinden eine Typo3 4.x Installation mit dem Shop-Frontend von OXID CE über eine XML-Schnittstelle, die von Flash bedient wird. Für dieses Vorhaben setzen wir die TER-Extension DB-Integration von Mauro Lorenzutti ( wfqbe ) ein.

Unser Dank gilt Mauro für die Unterstützung mit der 2. Generation einer xml-Template, die am Ende dieser Fallstudie zum Download bereitsteht.

1. Schritt: Installation DB-Integration ( wfqbe )

Wir gehen davon aus, daß Sie mit Installation von Typo3 4.x sowie der Extension DB-Integration vertraut sind. Wenn nicht, empfehlen wir die Lektüre der gut lesbaren TER-Dokumentation zu wfqbe. Wenn Sie wortgenau der einfachen Anleitung folgen, erhalten Sie ein einfaches Suchfeld sowie eine Tabelle mit den Ergebnissen Ihrer Anfrage an eine beliebige lokale oder entfernte SQL-Datenbank. Das Ergebnis ist eine Tabelle im klassischen HTML-Sinne mit TRs und TDs – gut für HTML, schlecht für Flash.

2. Schritt: Umleiten der Ausgabe von wfqbe in XML

Diese Aufgabe ist in zwei Teilschritte unterteilt. Zunächst wird dafür die Template im Plugin wfqbe so geändert, dass nicht TRs und TDs ausgegeben werden, sondern die Tabellenzellen von Tilden (~) sowie die Tabellenzeilen von <data>-Tags getrennt werden. Das hat ein hässliches, aber funktionstüchtiges XML-Konstrukt zum Ergebniss: <data>ArtID~Name~Bildname~usw…</data>. Auf Anfrage hat Mauro uns, neben den standardmäßig installierten csv und xls-Templates, eine neue xml-Template gesendet. Sie finden beide Templates zum Download am Ende dieser Seite.

Im zweiten Teilschritt muss im TS-Setup dafür gesorgt werden, daß anstelle des HTML-Headers einer für XML gesendet wird. Auch diese TS-Setupzeilen finden Sie im Anhang dieser Fallstudie. Das Ergebniss beider Teilschritte sehen Sie in Abb. 3, der xml-Ausgabe, die über einen GET-Aufruf wie diesen erzeugt wird:
www.servername.de/?type=666&tx_wfqbe_pi1[OXARTNUM]=12345.

In diesem Beispiel ist 666 die typeNum, welche im TS-Setup gewählt wurde und „12345“ ein Text, der in OXARTNUM gesucht wird. Von Vorteil ist die Eigenschaft, dass mit einer URL nicht nur ein Suchergebnis in der Datenbank eines beliebigen Servers erzeugt wird, sondern Typo3 anhand der TypeNum auch gleich die richtige Formatierung dafür beigebracht wurde.

3. Schritt: Anlegen der Artikel in OXID CE

Damit die Artikel von wfqbe gefunden werden können, müssen einige Informationen erstellt und zusammengetragen werden. Erstens muss natürlich mindestens ein Artikel im OXID CE angelegt werden. Spätestens seit der Installation von OXID kennt man auch zweitens: Datenbanknamen, Servername und Zugriffspasswort. Das ist wichtig, weil die Datenbank von OXID niemals in derselben SQL-DB steckt, wie Typo3. Wie entfernte Datenbanken von wfqbe angesprochen werden, ist im obigen TER-Artikel wunderbar dokumentiert. Und drittens muss man herausfinden, wo OXID die Daten innerhalb seiner SQL-Datenbank speichert. Dazu empfehlen wir einen Blick in PhpMyAdmin auf dem Server. In diesem Beispiel suchen wir z.B. die Artikelnummer, die u.a in OXARTNUM gespeichert wird.

4. Schritt: Entwicklung einer Flash-Programmierung

Nachdem sowohl die Datenbank-Abfrage mit GET arbeitet und dieses Ergebnis ist einer XML-Struktur ausgegeben wird, sorgt lediglich eine kleine Programmierung in Flash für die Abfrage und Anzeige der OXID CE Artikeldaten. In diesem Beispiel gibt es das Milieubild eines Badezimmers, in das gut ein Duzend Knöpfe eingezeichnet wurden. Diese Knöpfe umreißen die Form der abgebildeten Artikel, so dass mit der Maus im Bild gezielt z.B. der Toilettenpapier-Halter ausgewählt werden kann.

Jedem Knopf in Flash teilt man lediglich die Artikelnummer mit, Flash fragt mit dieser Artikelnummer die von Schritt 1 bis 3 gebaute Schnittstelle und erhält als Ergebnis einen kleinen Teil der Artikeldaten. Für dieses Beispiel werden neben Namen, Preis und Mengeneinheit auch das Artikelbild sowie der Detaillink abgefragt und angezeigt.

5. Schritt: Ergebnis im Überblick

DB-Integration ( wfqbe ) kann mit der richtigen Template jede Datenbank in einem frei definierbaren Format ausgeben. Naheliegend ist XML, weil damit ein interaktives System wie Flash direkt auf Livedaten eines Shops wie OXID CE zugreifen kann. Aus nur einer Datenbank wird damit Flash-GUI, der Shop selber und die Artikel-Detailansicht getrieben – viel praktischer geht es nicht.