Software & Infrastruktur

Neue Extension verbindet Open-Source-Shop-System mit TYPO3: Magento-Shop in TYPO3 integrieren

Seite 7 / 9

Es gibt jedoch auch Elemente in Magento, die keine separaten Parameter benötigen. Prominente Beispiele sind der Mini-Warenkorb sowie in Magento definierte Produkt-Teaser. Insgesamt stellt dies nur bedingt eine Einschränkung dar, da die gleichzeitige Anzeige zweier zentraler Shopinhalte die Besucher einer Seite eher verwirren würde.

Wenn mehrere Plugins per Plugin oder TypoScript in einer Seite eingebunden sind, muss unter Umständen auf die Reihenfolge der Bearbeitung geachtet werden. Das ist wichtig, um etwa zu verhindern, dass der dispatch-Vorgang durch das erste Plugin ohne Parameter gestartet wird, um beispielsweise den Mini-Warenkorb anzuzeigen, während innerhalb der Seite ursprünglich noch eine Kategorie-Übersicht angezeigt werden sollte. Hierfür durchsucht das Plugin die aktuelle Seite nach weiteren Shop-Content-Elementen, um potenziell deren Parameter zu übernehmen.

Zu beachten ist hierbei, dass das erstgefundene Content-Element mit Parametern genutzt wird und darüber hinaus keine TypoScript-Elemente des Plugins beachtet werden. In Zukunft wäre eine intelligentere Prüfung mit Priorisierung erstrebenswert.

Damit die Verarbeitung von Magento an die Anzeige von TYPO3 angepasst werden kann, wird dem Magento-Modul ein TYPO3-Content-Objekt übergeben, um zum Beispiel alle Links an den TYPO3-Stil anzupassen und über RealURL rendern zu können.

Das Magento-Modul

Auf Magento-Seite wurde ein neues Modul eingeführt. Dieses trägt den Titel „Flagbit TYPO3connect“ und hat die Aufgabe, die Anfragen von TYPO3 entgegenzunehmen und die gewünschte Ausgabe zurückzugeben. Um die Vorgehensweise der Extension zu verdeutlichen, soll stark vereinfacht vorgestellt werden, wie ein normaler Aufruf in Magento in den verschiedenen Klassen verarbeitet wird:

  1. Ähnlich der Vorgehensweise bei TYPO3 existiert auch bei Magento eine zentrale „index.php“, die so genannte Bootstrap-Datei, die die zentrale Klasse „Mage“ einbindet und anschließend die run()-Methode aufruft.
  2. Diese lädt zunächst die Grundkonfiguration der Applikation über die eigene Methode „app()“.
  3. Anschließend beauftragt „Mage“ das Core-Model und den Front-Controller, nach einem passenden Router für die Anfrage zu suchen.
  4. Ein Router wertet die gegebenen Parameter aus, um zunächst einen passenden Action-Controller zu finden und diesem die passenden Werte zu übergeben.
  5. Der Action-Controller führt nun die eigentliche Arbeit aus, indem er zunächst alle Routinen für Datenspeicherung über Models und Layout-Objekte veranlasst und anschließend die Ausgabe über die passenden Blocks anweist.

Das Modul ändert den Verarbeitungsprozess nun an mehreren Stellen, um ausschließlich die von TYPO3 angeforderte Ausgabe zu übergeben, dabei jedoch alle notwendigen Funktionalitäten zu erhalten. Die Herausforderung besteht darin, dass die zentralen Klassen relativ fest miteinander verbunden sind. Erschwerend kommt hinzu, dass die Mage-Klasse final ausgewiesen wird und somit nicht erweitert werden darf.

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Schreib den ersten Kommentar!

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 65 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung