Aller Anfang ist schwer – das ist auch bei Magento der Fall. Vor allem wenn man eigene Erweiterungen entwickeln möchte. Man tut sich ziemlich schwer und benötigt viel zeit, da keine Dokumenation frei verfügbar ist.

Mein erster Gedanke war es, nach geeigneter Literatur zu suchen. Zur Zeit ist leider nur der Titel Guide to Programming with MAGENTO von php|architects’s verfügbar. Man kann sich mit dem Buch zumindest einen Überblick verschaffen, aber zum Magento-Entwickler für Erweiterungen wird man damit sicherlich nicht.

Wir werden mit der traditionellen “Hello World” Anwendung beginnen, und diese Schritt für Schritt erweitern.

WICHTIG: Achten Sie beim Erstellen auf Groß- und Kleinschreibung!

1. Aufbau der Dateistruktur

app/
   etc/
      modules/
        - Mxperts_All.xml (Oder Ihre Firmenname IhreFirme_All.xml)
   code/
      local/
         Mxperts/ (Oder Ihre Firmenname IhreFirme_All.xml)
            Tutorial/ (Bezeichnung Ihrer Erweiterung)
               Block/
                 - Index.php
               controllers/
                 - IndexController.php
               etc/
                 - config.xml

Download der Dateistruktur: exttut_1_app.zip

2. config.xml erstellen

Die config.xml ist die Basis für das Magento-Modul und alle Standardparameter für das Modul werden festgelegt.

<?xml version="1.0"?>
<config>
    <modules>
        <Mxperts_Tutorial>
            <version>0.1.0</version>
        </Mxperts_Tutorial>
    </modules>
    <global>
        <blocks>
            <tutorial>
                <class>Mxperts_Tutorial_Block</class>
            </tutorial>
        </blocks>
    </global>
    <frontend>
        <routers>
            <Mxperts_Tutorial>
                <use>standard</use>
                <args>
                    <module>Mxperts_Tutorial</module>
                    <frontName>tutorial</frontName>
                </args>
            </Mxperts_Tutorial>
        </routers>
    </frontend>
</config>

Erklärung: <modules><Mxperts_Tutorial> Ermöglicht die Versionierung Ihres Moduls. Anhand der Versionsnummer kann das System benötigte Aktualisierungen erkennen. In den nachfolgenen Tutorials werden Sie das sehen. <global><blocks> Die Definition des Blocks wird verwendet um das Ausgabescript für Hallo Magento zu erstellen. <frontend><routers> definiert wie der Zugriff auf das Modul erfolgt. In unserem Falls ist das shop.mxperts.de/tutorial

3. IndexController.php erstellen

<?php
class Mxperts_Tutorial_IndexController extends Mage_Core_Controller_Front_Action
{

    public function indexAction()
    {
	    $this->loadLayout();
      $this->getLayout()
          ->getBlock('root')
             ->setTemplate("page/1column.phtml");
	    $this->getLayout()
		     ->getBlock('content')->append(
			$this->getLayout()->createBlock('tutorial/index')	);
      $this->renderLayout();
    }
}

Erklärung:
page/1column.phtml lädt das Template aus app/design/frontend/default/[Ihr Template]/template/page. Wenn Sie das Ergebnis 3-spaltig möchten, ändern Sie das Layout in 3columns.phtml.
‘tutorial/index’ bezieht sich auf die Definition aus der config.xml (Zeile 10, config.xml). Der Inhalt aus der index.php wird in das Layout integriert.

4. Den Block Index.php erstellen

<?php
class Mxperts_Tutorial_Block_Index extends Mage_Core_Block_Template
{
	protected function _toHtml()
	{
		return 'Hello Magento';
	}
}

Erklärung:
In der Index.php wird die Klasse Mxperts_Tutorial_Block_Index erstellt, wie Sie in der config.php definiert wurde (Zeile 11, config.xml)

5. Mxperts_All.xml zur Aktivierung des Moduls

<?xml version="1.0"?>
<config>
    <modules>
        <Mxperts_Tutorial>
            <active>true</active>
            <codePool>local</codePool>
        </Mxperts_Tutorial>
    </modules>
</config>

Nun ist es an der Zeit, unsere neu erstellte Magento Erweiterung zu testen. Gehen Sie dazu in Ihr Shopbackend und aktualisieren Sie als erstes den Cache.
Voila – Ihre Erweiterung ist fertig und kann über www.ihrshop.de/tutorial oder www.ihrshop.de/index.php/turotial aufgerufen werden.

Beispiel: http://shop.mxperts.de/tutorial

Download des gesamten Tutorials: mxpert_extensions_tutorial_01.zip

Viel Spaß beim nachprogrammieren und experimentieren. Verändern Sie auch die Bezeichnungen und Parameter um zu sehen welche Auswirkungen das jeweils hat.

Extensions Tutorial: Teil2 Admin-Controller