Zuerst wird im Ordner "app/etc/modules" eine weitere config.xml erstellt, diese weisst Magento darauf hin, dass es lokale Änderungen bestehen.
<?xml version="1.0"?>
<config>
<modules>
<Wg_Catalog>
<active>true</active>
<codePool>local</codePool>
</Wg_Catalog>
</modules>
</config>
Der Name es Moduls ist frei wählbar, fängt jedoch mit einem Grossbuchstaben; ein "_" stellt einen Verzeichniswechsel dar. Eigene Erweiterungen werden immer im Ordner "app/local" abgelegt, in unserem Beispiel im Ordner "app/local/Wg/Catalog". Im Ordner "app/code/local" erstellen wir nun die Struktur für das neue Modul. Dazu benötigen wir folgende Ordner: "app/code/local/Wg/Catalog/Block", "app/code/local/Wg/Catalog/Block/Category", sowie "app/code/local/Wg/Catalog/etc". In dem Verzeichnis etc erstellen wir eine config.xml mit folgendem Inhalt:
<?xml version="1.0"?>
<config>
<global>
<blocks>
<wg_catalog>
<class>Wg_Catalog_Block</class>
</wg_catalog>
<catalog>
<rewrite>
<category_view>Wg_Catalog_Block_Category_View</category_view>
</rewrite>
</catalog>
</blocks>
</global>
</config>
Im Ordner "app/code/local/Wg/Catalog/Block/Category" erstellen wir Datei, die wir erweitern möchten, in diesem Fall "View.php". Dazu benötigen wir initial diesen Inhalt:
class Wg_Catalog_Block_Category_View extends Mage_Catalog_Block_Category_View
{
public function MyFunction(){
/* magic */
}
}
Nun kann die Function "MyFunction()" aus dem gewohnten Kontext heraus aufgerufen werden, ohne die Core Dateien von Magento modifizieren zu müssen. Denn dies sollte unter keinen Umständen passieren, denn nach einem Update sind sämtliche Änderungen überschrieben.