Tips und Tricks

Erstellen einer Magento Erweiterung / Extension (Modul)

Hier zeige ich wie man ein einfaches Modul für Magento erstellt. Das Modul sorgt dafür ein einzelnes Produkt aus einer definierten Kategorie per Zufall darzusstellen. "Sms" ist der Entwickler der Extension und "Angebote" der Name des Moduls. Legen Sie folgende Ordnerstruktur an und achten Sie peinlichst auf die Groß-/Kleinschreibung:

  • /app/code/local/Sms
  • /app/code/local/Sms/Angebote
  • /app/code/local/Sms/Angebote/controllers
  • /app/code/local/Sms/Angebote/etc
  • /app/code/local/Sms/Angebote/Helper
  • /app/design/frontend/default/"Ihr Theme"/template/sms/angebote

Danach legen Sie folgende Dateien an. Auch hier achten Sie bitte wieder auf die Groß-/Kleinschreibung:

  • /app/code/local/Sms/Angebote/controllers/IndexController.php
  • /app/code/local/Sms/Angebote/etc/config.xml
  • /app/code/local/Sms/Angebote/Helper/Data.php
  • /app/design/frontend/default/"Ihr Theme"/template/sms/angebote/content.phtml

Im Controller legen Sie fest, wie unser Modul angezeigt werden soll. Zur Prüfung können Sie später das Modul über den Browser direkt aufrufen.

Datei: /app/code/local/Sms/Angebote/controllers/IndexController.php

Die config.xml

  • modules => enthält die Versionsnummer und muss in jeder Extension vorhanden sein
  • global => hier werden alle Helper, Models und Installationsscripte Magento bekannt gegeben
  • resources => hier definieren wir den Datenbankzugriff für Lese- beziehungsweise Schreibzugriffe
  • global => "helpers" – definiert in dieser Extension den Helper
  • frontend => definiert alle Frontendeigenschaften wie Templates, Sprachdateien (übersetzungsdateien) und vor allem den Frontendnamen zum späteren Aufruf über den Browser

Datei: /app/code/local/Sms/Angebote/etc/config.xml

Die Data.php

Das Herzstück unseres Magento-Moduls. Hier wird die Logik definiert die zur Ausgabe unseres Angebotsartikels führt. Wir übergeben in der Variable $angebotid die Kategorie-Id der Kategorie aus der wir die Produkte laden wollen Auf Basis der Kategorie-Id laden wir uns das die Produktkollektion $angebotproducts per random und begrenzen die Anzahl der Produkte via limit(1). Am Ende übergeben wir das array $angebote_array mit den benötigten Feldern zurück an unsere Abfrage (die .phtml, dazu später mehr).

Datei: /app/code/local/Sms/Angebote/Helper/Data.php

Als nächstes benötigen wir eine Datei die Magento anweist unser neues Modul im System einzubinden. Bei uns ist es

die Sms_Angebote.xml

Die Sms_Angebote.xml installieren wir in den Ordner /app/etc/modules.

Datei: /app/etc/modules/Sms_Angebote.xml

Die content.phtml

Die content.phtml zeigt unser neues Modul im Frontend an und ruft die im Helper definierte Funktion auf. Der Aufruf findet über die Eingabe des Frontend-Namens im Browser statt. Die Einbindung dieses Moduls nehmen Sie dann an geeigneter Stelle in der local.xml im Ordner "layout" vor.