| |||||||
| Magento FAQ - Extensions FAQ zu Magento Extensions |
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| rack::SPEED Support Registriert seit: 19.10.2008 Ort: Krefeld
Beiträge: 907
Renommee-Modifikator: 10 ![]() |
Oft reichen für die normalen Magento-Funktionen zur Erstellung eines wirklich individuellen Onlineshops nicht aus. Dieses Tutorial zeigt, wie Magento "core-Klassen" richtig überschrieben und verändert werden. Die hier gezeigte Lösung funktioniert für Block- und Model-Klassen, Controller werden etwas anders behandelt und bekommen daher ein eigenes Tutorial. Ziel dieses Tutorials ist es, die Funktion der Datei "app/code/core/Mage/Catalog/Block/Breadcrumbs.php" zu überschreiben. Dazu haben wir zwei Möglichkeiten: 1. Die schnelle Lösung Um schnell und unkompliziert eine Funktion zu verändern genügt es die Datei Breadcrumbs.php inkl. Verzeichnisbaum nach "app/code/local" zu kopieren. Der vollständige Pfad sollte am Ende so aussehen: "app/code/local/Mage/Catalog/Block/Breadcrumbs.php". - Jede Veränderung des Quellcodes wirkt sich, sofern der Cache deaktiviert wurde, sofort auf den Shop aus. 2. Die saubere Lösung Da die 1. Lösung einige Nachteile mit sich bringt und nur schwer weiterzugeben ist, wollen wir nun ein Modul für die Änderungen erstellen. Dieses Modul kann später auch exportiert und über MagentoConnect der ganzen Comunity zugänglich gemacht werden. Als erstes erstellen wir unterhalb von "app/code/local" einen Arbeitsordner. Diesen Ordner nennen wir "Rackspeed", damit wir später wissen wo wir unsere Änderungen bzw. Module wiederfinden. - Wichtig hierbei ist die Schreibweise: 1. Buchstabe groß, der Rest klein. In diesem Ordner erstellen wir einen weiteren Order mit dem Namen unseres Moduls, z.B. "BreadStop". Als nächstes werden zwei weitere Ordner in dem soeben erstellten Ordner erstellt: "etc" und "Catalog". "etc" nimmt die Konfigurationsdatei "config.xml" unseres Moduls auf, "Catalog" leiten wir vom originalen Pfad der zu überschreibenden Funktion ab. Im "Catalog"-Ordner erstellen wir wiederum einen Ordner mit dem Namen "Blocks" welcher ebenfalls vom originalen Pfad abgeleitet wird. Abschließend kopieren wir die Datei "Breadcrumbs.php" in diesen Ordner. Das Ganze sollte nun wie folgt aussehen: Code: app/code/local/Rackspeed/BreadStop/Catalog/Block/Breadcrumbs.php app/code/local/Rackspeed/BreadStop/etc/config.xml Code: <?xml version="1.0"?>
<config>
<modules>
<Rackspeed_BreadStop>
<version>0.1.0</version>
</Rackspeed_BreadStop>
</modules>
<global>
<blocks>
<catalog>
<rewrite>
<breadcrumbs>Rackspeed_BreadStop_Catalog_Block_Breadcrumbs</breadcrumbs>
</rewrite>
</catalog>
</blocks>
</global>
</config> Code: class Mage_Catalog_Block_Breadcrumbs extends Mage_Core_Block_Template Code: class Rackspeed_Breadstop_Catalog_Block_Breadcrumbs extends Mage_Core_Block_Template PHP-Code: Code: <?xml version="1.0"?>
<config>
<modules>
<Rackspeed_BreadStop>
<active>true</active>
<codePool>local</codePool>
</Rackspeed_BreadStop>
</modules>
</config> Das komplette Modul wurde als ZIP-Datei angehängt, und kann als Grundlage für neue Module genutzt werden, oder um die eigene Arbeit zu kontrollieren. Da dies mein erstes Tutorial ist freue ich mich über jede Art von Feedback. |
| | |
| | #2 (permalink) |
| rack::SPEED Kunde Registriert seit: 19.11.2008
Beiträge: 15
Renommee-Modifikator: 0 ![]() |
Einen kleinen Fehler hat das Tutorial: In dem Code-Abschnitt unter Punkt 2 muss es nicht Code: app/code/local/Rackspeed/BreadStop/catalog/etc/config.xml Code: app/code/local/Rackspeed/BreadStop/etc/config.xml Ansonsten ein hervorragendes Beispiel. Bin der Magento-Logik so einen großen Schritt näher gekommen. |
| | |
| | #4 (permalink) |
| rack::SPEED Kunde Registriert seit: 19.11.2008
Beiträge: 15
Renommee-Modifikator: 0 ![]() |
Gibt es eigentlich auch noch weiterführende Tutorials? Ich versuche z.B. gerade ein Modul zu erstellen, mit dem man per Eingabe der Bestellnummer und Angabe der Menge eine Schnellbestellung durchführen kann. Ich "frickel" mich hier gerade durch die Funktion Catalog_Search von Magento. Wenn jemand da Tipps hat, wäre ich sehr sehr dankbar!!! |
| | |
| | #5 (permalink) |
| rack::SPEED Kunde Registriert seit: 19.11.2008
Beiträge: 15
Renommee-Modifikator: 0 ![]() |
Ich habe ein Modul gefunden, welches genau dieses macht: Es nennt sich Karma Quickaddtocart. Ich bekomme folgende Fehlermeldung, wenn ich dieses Modul installieren möchte: Code: Failed to download magento-community/Karma_quickaddtocart within preferred state "beta", latest release is version 1.0, stability "alpha", use "channel://connect.magentocommerce.com/community/Karma_quickaddtocart-1.0" to install Cannot initialize 'channel://connect.magentocommerce.com/community/Karma_quickaddtocart', invalid or missing package file Install Errors Package "channel://connect.magentocommerce.com/community/Karma_quickaddtocart" is not valid PEAR ERROR: install failed |
| | |
| | #7 (permalink) |
| Neuer Benutzer Registriert seit: 03.01.2010
Beiträge: 1
Renommee-Modifikator: 0 ![]() |
Perfekt, genau danach habe ich gesucht! Vielen Dank! Nur der Vollständigkeit halber: der Schalter steht in der angehängten Rackspeed_BreadStop.xml auf 'false' und muss erst auf 'true' gesetzt werden, bevor der beschriebene Effekt sichtbar wird. |
| | |
| | #8 (permalink) |
| Neuer Benutzer Registriert seit: 21.06.2010
Beiträge: 1
Renommee-Modifikator: 0 ![]() |
hallo also ich versuche gerade einen eigenen Menü Punkt zu erstellen und in "Manage Products" ein neues Feld einzufügen in der Edit/Add Funktion und sie soll natürlich auch in der Übersicht angezeigt werden. Das Tutorial hilft mir fast ![]() Und zwar in der etc/config.xml schreibst du folgendes: Code: <global>
<blocks>
<catalog>
<rewrite> Das kann ich nocht nicht ganz nachvollziehen. Kann mir da jemand helfen? |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| erstellen, extension, howto, magento, modul, programmierung, tutorial |
| Themen-Optionen | |
| Ansicht | |
| |
LinkBacks (?)
LinkBack to this Thread: http://rackspeed.de/forum/magento-faq-extensions/modulerstellung-erstelle-modul-funktion-ueberschreiben-19 | ||||
| Erstellt von | For | Type | Datum | |
| 23kar.at's Bookmarks on Delicious | This thread | Refback | 17.03.2009 16:19 | |
| Modulentwicklung mit Magento ? KolibriWiki | This thread | Refback | 04.12.2008 14:13 | |