Tutorial: Kopieren eines Versandmoduls
(by Hendrik Koch, 08.2009)
Oft kommt es vor, daß man ein Versandmodul mit veränderten Eigenschaften benötigt. Sinnvoll ist es ein Modul aus der Standardbiblothek zu entnehmen, zu kopieren um es in seinen Eigenschaften anzupassen und dabei das Originalmodul beizubehalten.
Dieser Text beschreibt an einem Beispiel wie man ein Versandmodul kopiert. Die genannten Operationen passen für die meisten Standardmodule. Es kann aber Abweichungen geben. In diesem Fall sind weitere individuelle Maßnahmen erforderlich die dieses Tutorial, weil allgemein gehalten, nicht berücksichtigen kann.
Das Versandmodul "Versandkostenfrei (freeamount)" kann nicht so ohne weiteres kopiert werden, da im Shop an vielen Stellen im Code auf "freeamount" getestet wird und diese Stellen dann um den Namen des kopierten Moduls erweitert werden müssten. Einfacher ist eine Erweiterung auf Zonen dieses Moduls.
Wir wählen das Modul "table" (Tabellarische Versandkosten) aus und kopieren es zu Modul "table2".
Codedatei[Bearbeiten]
Das Modul liegt in Ordner
includes/modules/shipping/table.php
Als erstes kopieren wir es in Datei
includes/modules/shipping/table2.php
Öffnen
Alle Vorkommen des Terminus "table" werden ersetzt in "table2". Groß/Kleinschreibung beachten bei der Textsuche. Dabei ist zu beachten, daß nicht einfach mittels der Textfunktion nur das Wort table ersetzt wird sondern alle Vorkommen des Klassen- und Modulnamens "table".
Achtung: Bei dem neuen Namen auf keinen Fall Unterstriche verwenden: "table_2" funktioniert nicht!
class table {
zu
class table2 {
ebenso
$this->code = 'table';
function table() {
Letztgenanntes, wenn es vorkommen sollte mit diesem ersetzen (noRiddle):
function __construct() {
Nun die Konfigurationsnamen
Alle Vorkommen von
MODULE_SHIPPING_TABLE_.....
ersetzen zu
MODULE_SHIPPING_TABLE2_.....
Aufpassen: Die Konstante TABLE_CONFIGURATION nicht ändern! Diese Namensähnlichkeit ist rein zufällig und hat nichts mit dem Modul "table" zu tun.
Sprachdateien[Bearbeiten]
Die Sprachdateien des Moduls liegen im lang-Ornder
lang/german/modules/shipping/table.php
Datei kopieren nach
lang/german/modules/shipping/table2.php
Öffnen und alle Vorkommen von
MODULE_SHIPPING_TABLE_.....
ersetzen zu
MODULE_SHIPPING_TABLE2_.....
Fertig.
Das Versandmodul table steht nun als table2 unabhängig zur Verfügung und kann ohne Wechselwirkungen zum Originalmodul angepasst werden.