Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Anpassungen richtig einbauen / Möglichkeiten von Modulen

    kirt

    • Neu im Forum
    • Beiträge: 15
    Hallo,

    wir betreiben einen stark angepassten Shop, der sich mittlerweile kaum mehr updaten lässt.
    Jetzt nehmen wir eine neue Version und portieren unsere gesamten Anpassungen dort hinein.
    Allerdings möchten wir nun den alten Fehler vermeiden und es dieses mal nicht mit dem
    Holzhammer integrieren, sondern die Anpassungen so ausführen, dass diese bei zukünftigen
    Updates und Security Patches nicht (so wenig wie möglich) stören. Obwohl wir den Shop schon
    lange verwende und relativ viel Code reingebastelt haben, kennt sich bei uns keiner richtig mit
    den Internas von modified eCommerce Shopsoftware aus. Deshalb zum Anfang ein paar blöde allgemeine Fragen/Annahmen:

    1) Ich gehe davon aus, dass ein Zusatzmodul der beste Weg ist, Änderungen vorzunehmen. Richtig?
    2) Security Patches lassen sich von Zusatzmodulen nicht stören. Richtig?
    3) Was lässt sich denn grundsätzlich über ein Modul lösen und was nicht? Es gibt doch vermutlich Bereiche, in die Module eingreifen können und solche, in die sie nicht eingreifen können.
    4) Gibt es für die Entwicklung von Modulen eine Howto oder Dokumentation?
    5) Gibt es für Anpassungen, die sich nicht über Module lösen lassen, Empfehlungen wie diese ausgeführt werden sollten, so dass sie Security Patches nicht behindern und ggf. auf mit neuen Versionen kompatibel sind? Wenn nicht, gibt es doch bestimmt eine Reihen von absoluten "Design Dont's" die man vermeiden sollte.
    6) Da hier ja viele an ihren Shops herumbasteln bin ich sicher nicht der Einzige, der sich Gedanken über Patches und Updates macht. Wie umgeht ihr dieses Probleme, was ist eure Best Practise?

    Im Voraus danke für euer Feedback!

    Kirt

    Linkback: https://www.modified-shop.org/forum/index.php?topic=31640.0

    burrito

    • Viel Schreiber
    • Beiträge: 535
    • Geschlecht:
    Re: Anpassungen richtig einbauen / Möglichkeiten von Modulen
    Antwort #1 am: 01. Dezember 2014, 23:24:55
    Hallo Kirt,

    das Hauptproblem an allen xtc-Forks (und somit auch an Modified) ist das Wort "Modul". Seit Generationen werden jegliche Arten von Umbauten, die eine neue Funktionalität bringen "Modul" genannt. Ein Externer meint, dass man hier einfach ein Stück Code an eine Schnittstelle andocken kann. Leider ist das nicht so!

    Was hier und auch bei allen anderen Forks "Module" sind, das sind Code-Änderungen, die häufig bis tief in die Core-Dateien gehen. Modified hat keine richtige Schnittstelle um neue Module einfach einzuhängen.

    Grundsätzlich wird hier immer der Rat gegeben, man soll Änderungen soweit, wie möglich, in das Template auslagern. Dann funktionieren die Updates leichter. Aber auch das muss man relativieren:

    1. Wenn Du mal ein anderes Template testen möchtest, dann fallen Dir viele Funktionen weg bzw. Du musst sie in das neue Template integrieren.
    2. Es gibt Sicherheitspatches, die wiederum bis ins Template reichen.

    Manche neue Funktionen kannst Du im Template auf Smarty-Funktionen auslagern. Hierzu bietet sich das Verzeichnis DEIN-TEMPLATE/smarty an. Außerdem kannst Du in den html-Dateien des Templates viele Ausgaben direkt über Smarty filtern und manipulieren.

    Musst Du hingegen bestehende Core-Funktionen anpassen, bleibt Dir nichts anderes übrig, als sehr gut zu dokumentieren.
    1. Kommentieren im Source-Code jede Änderung genau mit. Dann findest Du beim Umstieg auf eine neue Version Deine Änderungen.
    2. Behalte eine Original-Version von Modified. Dann kannst Du jederzeit durch Dateivergleich Deine Änderungen gegenüber der Original-Version feststellen. Zudem kannst Du auch nachvollziehen, was in der neuen Version gegenüber Deiner Original-Version geändert wurde.
    3. Verwende eine Entwicklungsumgebung, die die History Deiner Source-Daten speichert. So kannst Du die Änderungen nachvollziehen, notfalls wieder rückgängig machen und auf die Original-Version zurück greifen.

    Viel Erfolg beim Update

    burrito

    kirt

    • Neu im Forum
    • Beiträge: 15
    Re: Anpassungen richtig einbauen / Möglichkeiten von Modulen
    Antwort #2 am: 01. Dezember 2014, 23:50:20
    Hallo Burrito,

    danke für die ausführliche - wenn auch ernüchternde - Antwort.

    Nur um das jetzt richtig zu verstehen: Gilt die Aussage, dass es keine "richtigen" Module gibt auch für die Versand- und Zahlungsmodule, die namentlich auch als solche über die GUI eingebunden werden können? (Also werden auch hier ggf. Core-Dateien ersetzt, so dass man bei einem angepassten Shop vorsichtig sein muss, ein solches "Modul" zu aktivieren / installieren?)

    Danke und Grüße
    Kirt

    Matt

    • Experte
    • Beiträge: 4.241
    Re: Anpassungen richtig einbauen / Möglichkeiten von Modulen
    Antwort #3 am: 02. Dezember 2014, 00:26:47
    Nein. Es gibt Module für Versand, Zahlung und order_total (? ungeprüft, war ein langer Tag) ohne Eingriffe in den Core.. Für alles andere gilt das von burrito gesagte, man hätte es nicht besser ausdrücken können.

    manne35

    • Fördermitglied
    • Beiträge: 615
    • Geschlecht:
    Re: Anpassungen richtig einbauen / Möglichkeiten von Modulen
    Antwort #4 am: 02. Dezember 2014, 01:31:35
    Hallo,

    Zitat
    3. Verwende eine Entwicklungsumgebung, die die History Deiner Source-Daten speichert. So kannst Du die Änderungen nachvollziehen, notfalls wieder rückgängig machen und auf die Original-Version zurück greifen.

    ... wenn nur eine Person ab und zu an nur eine Shop etwas bastelt, welche Entwicklungsumgebung ist denn die einfachste (mit History Speicherung) ?

    lg manne

    hendrik

    • Experte
    • Beiträge: 2.038
    Re: Anpassungen richtig einbauen / Möglichkeiten von Modulen
    Antwort #5 am: 02. Dezember 2014, 07:15:17
    Was Burrito sagt hätte ich nicht besser ausdrücken können.

    Wenn nur einer an dem Laden arbeitet braucht man keine Dokumentationssysteme. Notizzettel reicht. Und Dateien vor Änderung sichern (Backup) mit Datum. So erhälst du auch eine History deiner Änderungen. Tu so als müsstest du deine Arbeit jederzeit einem anderen übergeben können. Was meinst du was man nach 2 Jahren alles vergessen hat.

    Da du den Laden nicht wirklich updaten kannst sondern neu aufbauen mußt nimm es als Chance dich von alten Hacks zu befreien und es besser zu machen. Ein anständig dokumentiertes System zu pflegen macht mehr Spaß als ein Wollknäul wo keiner mehr richtig versteht was ab geht.

    gruß
    hen

    Matt

    • Experte
    • Beiträge: 4.241
    Re: Anpassungen richtig einbauen / Möglichkeiten von Modulen
    Antwort #6 am: 02. Dezember 2014, 12:03:13
    Wenn nur einer an dem Laden arbeitet braucht man keine Dokumentationssysteme. Notizzettel reicht. Und Dateien vor Änderung sichern (Backup) mit Datum. So erhälst du auch eine History deiner Änderungen.

    Komfortabel ist aber anders. Selbst wenn ich nur alleine dran arbeite würde ich heute als erstes ein Github Repo aufmachen. Der Tag, an dem ein zweiter mit einsteigen muss, kommt immer schneller als man denkt.

    burrito

    • Viel Schreiber
    • Beiträge: 535
    • Geschlecht:
    Re: Anpassungen richtig einbauen / Möglichkeiten von Modulen
    Antwort #7 am: 02. Dezember 2014, 22:06:56
    ... wenn nur eine Person ab und zu an nur eine Shop etwas bastelt, welche Entwicklungsumgebung ist denn die einfachste (mit History Speicherung) ?

    Ich verwendet Mercurial. Die Auswahl fiel aus folgenden Gründen auf dieses Tool:
    1. Aus anderen Gründen verwende ich NetBeans als IDE. Für NetBeans gibt es ein Mercurial PlugIn, so dass ich komfortabel speichern und die Versionen kommentieren kann.
    2. Ich kann auch außerhalb von NetBeans mit beliebigen Werkzeugen die Dateien ändern und über den Windows-Explorer die Daten versionieren.
    3. Es gibt eine Benutzeroberfläche (Tortoise-Hg), so dass ich die Kommandozeilen-Befehle nicht lernen muss. (So oft arbeite ich jetzt auch nicht damit, dass ich die ständig im Kopf habe.)
    4. Meine Internetverbindung ist langsam und instabil. Die Daten mussten auf alle Fälle lokal und nicht in einer Cloud liegen.
    5. Mit Mercurial kann man Stable-Versionen heraus Branchen und am Rest weiter arbeiten.

    Bei Tool-Fragen gibt es immer viele Meinungen und viele Antworten. Du musst hier die Tools antesten und prüfen welches für Dich und Deine Wünsche am besten geeignet ist.

    Viel Erfolg

    burrito

    kirt

    • Neu im Forum
    • Beiträge: 15
    Re: Anpassungen richtig einbauen / Möglichkeiten von Modulen
    Antwort #8 am: 03. Dezember 2014, 22:38:49
    Hallo zusammen,

    vielen Dank für die Meinungen und Tipps. Für mich ist es schon mal sehr hilfreich zu Wissen, dass es einfach nicht richtig elegant geht (so blöd wie befürchtet haben wir uns dann bisher gar nicht angestellt), und dass Änderungen im Template tatsächlich gar nicht schlecht sind, da der Core unangetastet bleibt. Gerade letzteres hätte ich normalerweise zu vermieden versucht, wobei es hier dann der beste (bzw. der am wenigsten schlechte) Ansatz sein wird.

    Grüße
    Kirt

    kirt

    • Neu im Forum
    • Beiträge: 15
    Re: Anpassungen richtig einbauen / Möglichkeiten von Modulen
    Antwort #9 am: 04. Dezember 2014, 00:17:05
    Hallo zusammen,

    nach ein paar Versuchen möglichst viel Funktionalität über das Template umzusetzen, bin ich nun an dem Punkt, dass eigene Smarty Funktionen dazu wohl ganz nützlich wären. Wie kann ich dann meine eigenen Funktionen so laden, dass das keine unnötige Leistung frisst und am besten an einer zentralen Stelle erfolgt?

    Danke
    Kirt

    burrito

    • Viel Schreiber
    • Beiträge: 535
    • Geschlecht:
    Re: Anpassungen richtig einbauen / Möglichkeiten von Modulen
    Antwort #10 am: 04. Dezember 2014, 10:35:44
    Manche neue Funktionen kannst Du im Template auf Smarty-Funktionen auslagern. Hierzu bietet sich das Verzeichnis DEIN-TEMPLATE/smarty an. Außerdem kannst Du in den html-Dateien des Templates viele Ausgaben direkt über Smarty filtern und manipulieren.

    Als Beispiel kann Du Dir mal das "Modul" Rating Stars 1.1 ansehen.

    Bei diesem Modul wurden ursprünglich Änderungen an den Core-Dateien gemacht. Diese Änderungen habe ich in eine Smarty-Funktion ausgelagert. Der Aufruf der Funktion erfolgt in der HTML-Datei des Templates an "beliebiger" Stelle. Anschließend stehen die in der Funktion erzeugten Smarty-Variablen zur Verfügung.

    Durch den Aufruf aus der HTML-Datei wird die Smarty-Funktion auch nur wirklich dann aktiviert, wenn die zugehörige HTML-Seite angefordert wird.

    burrito
    10 Antworten
    5080 Aufrufe
    05. Juli 2014, 00:17:41 von Christian|PCE
    7 Antworten
    4551 Aufrufe
    09. April 2014, 22:35:23 von downset
    0 Antworten
    2646 Aufrufe
    05. Februar 2011, 09:19:25 von jottbeka
    2 Antworten
    2482 Aufrufe
    29. Juli 2014, 16:54:40 von webald
               
    anything