In Teil2 unserer Extension Tutorials ergänzen wir das Backend mit einer Verwaltung für unsere Erweiterung.
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/
- AdminController.php
- IndexController.php
etc/
- config.xml
Helper
- Data.php
<?php
class Mxperts_Tutorial_AdminController extends Mage_Adminhtml_Controller_Action
{
public function indexAction()
{
$this->loadLayout()
->_addContent($this->getLayout()
->createBlock('tutorial/index'))
->renderLayout();
}
}
Erklärung:
Der Admin-Controler wird im Vergleich zum Frontend-Controler von der Klasse Mage_Adminhtml_Controller_Action abgeleitet. Dies Klasse besitzt spezielle Funktionen für die Sicherheit und zur Darstellung im Backend. Zur Ausgabe verwenden wir wieder unser “Hallo Magento” aus Teil1. Sie sehen es an der Definition ->createBlock(’tutorial/index’), die mit der Definition aus dem Frontend-Controller identisch ist.
<?xml version="1.0"?>
<config>
<modules>
<Mxperts_Tutorial>
<version>0.1.0</version>
</Mxperts_Tutorial>
</modules>
<global>
<helpers>
<tutorial><class>Mxperts_Tutorial_Helper</class></tutorial>
</helpers>
<blocks>
<tutorial>
<class>Mxperts_Tutorial_Block</class>
</tutorial>
</blocks>
</global>
<adminhtml>
<menu>
<tutorial translate="title" module="tutorial">
<title>Tutorial</title>
<sort_order>100</sort_order>
<action>tutorial/admin</action>
</tutorial>
</menu>
</adminhtml>
<frontend>
<routers>
<Mxperts_Tutorial>
<use>standard</use>
<args>
<module>Mxperts_Tutorial</module>
<frontName>tutorial</frontName>
</args>
</Mxperts_Tutorial>
</routers>
</frontend>
</config>
Erklärung:
Der Bereich <helpers> definiert die helper class, die für zukünftige Übersetzungen verwendet wird.
Im Bereich <adminhtml> definieren wir unser neues Menü.
<?php
class Mxperts_Tutorial_Helper_Data extends Mage_Core_Helper_Abstract
{
}
Die Helper Klasse wird benötigt und muss definiert werden. Wenn man dies nicht tut, führt das zu einer Fehlermeldung, da Magento eine Standard-Klasse sucht und diese dann nicht finden kann.
Wenn Sie nun Ihr Backend Aufrufen, werden Sie den neuen Menüpunkt Tutorial finden. Wenn Sie das neue Menü anklicken erscheint wieder unser “Hallo Magento”.


Extensions Tutorial: Teil3 - Datenbank werde ich demnächst hier veröffentlichen.
Extensions Tutorial: Teil1 - “Hallo Magento”
Extensions Tutorial: Teil 3 - Datenbank
Hey, super Tutorials. Brauche Magento für meine Bachelorarbeit und Euer Stuff ist der Perfekte Einstieg.
Hab nur leider einen Fehler gemacht und das hier: “Die Helper Klasse wird benötigt und muss definiert werden. Wenn man dies nicht tut, führt das zu einer Fehlermeldung, da Magento eine Standard-Klasse sucht und diese dann nicht finden kann.” vergessen.
jetzt kan nich den Cache nicht löschen, da das backend nicht mehr funktioniert. Was kann ich machen?
Hab den Fehler: Fatal error: Class ‘Mage_Schaufenster_Helper_Data’ not found in C:\xampp\htdocs\magento\app\code\core\Mage\Core\Model\App.php on line 831
Also ich hab den Fehler natürlich behoben. Kann halt den Cache nicht aktualisieren. Geht das noch? Oder muss ich jetzt im core rumfummeln? Ich kann doch nicht jedes mal das Ding neu aufsetzen!
Ok. einfach die config.xml und die admincontroller.php löschen und cache löschen (var/cache) und schon rennt der laden wieder!
Hallo Stephan,
danke für Deine Kommentare - das ist der klassische Falls wenn man Schreibfehler in der Definiton der Helper Klasse hat oder diese nicht definiert. Das bedeutet man muss den Fehler lokalisieren - da musste ich auch durch :-).
Schön dass du es geschafft hast - ich hoffe es gibt Anderen, die ähnliche Schwierigkeiten haben, genügend Motivation weiterzumachen.
Weiterhin viel Erfolg.
Johannes Teitge
Klasse, jetzt tut sich was im Backend.
In Lektion 1 durfte ich erfahren das es mit “Groß- und Kleinschreibung” ernst gemeint war, denn es ist bei mir ewig und 3 Tage nichts gelaufen bis mir aufgefallen ist, dass ich in der Mxperts_All.xml unter app/etc/modules das Wort “standard” so geschrieben hatte: “Standard”.
Ein Zeichen entscheidete über “Hello Magento” oder eben wie bei mir “404 not found”. Ich werde da jetzt echt mal besser drauf achten.
@Johannes: Danke für die Info am Anfang, ich hoffe andere ignorieren die nicht so wie ich.
Läuft bisher alles glatt und den neuen Button im Backend habe ich auch. Noch kann ich der Sache
folgen, glaube ich.
Ich werde es so machen, dass wenn ich nicht mehr durchsteige einfach einen Step zurück springe, dann macht es bestimmt wieder klick.
hallo, wie kriegt man den die action auf adminhtml/tutorial umgestellt statt auf tutorial/admin
damit die urls im backend auch alle gleich aussehen.
hi zusammen, wo muss ich klasse Helper erstellen??
PS: bestimmt ist eine blöde Frage, bin aber newbie
Viele Grüße
Hi amy_82,
die Helper-Klasse kommt in diese Datei:d
app/code/local/Mxperts/Tutorial/Helper/Data.php
“Mxperts” und “Tutorial” musst du dabei durch deinen Namespace bzw. deinen Modul-Namen ersetzen.
Hallo,
erstmal danke für das super Tutorial! Hat mir bisher sehr geholfen einen Einstieg zu finden und hat auch komplet auf anhieb alles funktioniert.
Jetzt wollte ich allerdings im Shop unter System -> Allgemein: Web -> URL Optionen
Den StoreCode in der URL mit ausgeben lassen und leider funktioniert der neue Menüpunkt nicht mehr. Es erschient folgender Fehler:
Front controller reached 100 router match iterations
Hat jemand eine Idee, woran dies liegen könnte?
Grüße Micha