USERMODS: Updatesichere HTML-, JS- und CSS-Dateien im Gambioshop

Und wieder sind wie bei dem Thema Updatesicherheit in einem Gambioshop anhand von .html-, .js- (Java Script) und .css-Dateien.

Über Overloads und das Extender-System habe ich ja bereits berichtet.

Eine weitere Funktionalität von dem Gambiosystem ist das Erstellen von sogenannten Usermods, die mit dem Suffix -USERMOD bei .html-Dateien am Ende des Dateinamens angehängt werden.

Die Besonderheit bei JavaScript- und CSS-Dateien ist, dass man hier globale Usermods erstellen kann. Denn hier spielt die Namensgebung keine Rolle, weil sie am Ende der .js- und .css-Datei angehängt werden.

Was genau passiert hier und worauf haben die Usermods Einfluss?

Usermods sind veränderte bzw. erweiterte Dateien, die die Original Standard-Dateien vom Shop quasi überladen, überschreiben und/oder erweitern.

Damit kann man gezielte Veränderungen in den Funktionen und der Ansicht bewirken, weil die Orginal-Dateien nicht angefasst werden und die Usermods greifen.

Das bedeutet in der Praxis und darum geht es ja, was die Updatesicherheit betrifft, dass beim Einspielen eines Masterupdates oder Servicepacks die Originaldateien nicht überschrieben werden.

Würde man stumpf Änderungen an den Originaldateien vornehmen, wären Sie bei einem Update weg. Gerade bei individuellen Anpassungen oder Modulen ein sehr ärgerliches und kostenintensives Vorhaben.

Hier einige Beispiele zum Verständnis, wie die Struktur und Dateien aussehen muss/müssen:

Beispiel 1 von .html-Dateien:

Aus der Datei im Honeygrid-Ordner module: [ROOTVERZEICHNIS]/templates/[TEMPLATENAME]/module/checkout_success.html

wird checkout_success-USERMOD.html

Beispiel 2 – Das Hinzufügen von updatesicheren .js- und .css-Dateien:

Im JS-Ordner [ROOTVERZEICHNIS]/templates/[TEMPLATENAME]/usermod/javascript

wird einfach Ihre meine-java-script.js Datei und

im CSS-Ordner [ROOTVERZEICHNIS]/templates/[TEMPLATENAME]/usermod/css

meine-css.css Datei abgelegt.

Wussten Sie das man updatesichere Programmierung auch über das Gambio GXModules-System abbilden kann?

Wir als Full-Service- und offizielle Gambio-Partner-Agentur bedienen uns dieser Technik und versuchen die Updatesicherheit für Ihren Shop damit zu gewährleisten bzw. zu erhöhen.

Wenn Sie Unterstützung benötigen, so können Sie uns jederzeit kontaktieren und wir werden gemeinsam mit Ihnen eine Lösung erarbeiten. Rufen Sie uns an oder nutzen Sie unser Kontaktformular!

Zusammenspiel von dem Gambio-Extender- und Overload-System

Heute möchte ich grob das Gambio-Extender-System anschneiden und Ihnen verständlich machen, wie man Overloads für Gambio mit dem Hook-Point-System kombiniert.

Zunächst einmal eine kurze Begriffserklärung:

Was ist das Gambio-Extender-System?

Jeder der selbst entwickelt, wünscht sich das seine Änderungen, die man am Shopsystem gemacht hat, nach einem Update erhalten bleiben. Hier sind wir wieder bei der Thematik Updatesicherheit. Im Gambio gibt es sogenannte Extender-Klassen, man könnte diese auch Andock-Points nennen, wo man mittels Gambio-Overloads diverse Stellen manipulieren, modifizieren und erweitern kann, ohne in den eigentlichen Quellcode einzugreifen. Die Programmierungen und somit der Aufbau an den Extendern laufen immer nach einem bestimmte Schema ab, so dass das Überladen der Scripte zum Kinderspiel wird. Wie man Overloads richtig anfertigt und somit die Schnittstelle anspricht, beschreibe ich in einem anderen Beitrag und verzichte an dieser Stelle, die Ewähnung von Punkten, wie dem Suffix _parent, Verzeichpfad GXUserComponents/overloads/ und so weiter und so fort.

Welche Stellen lassen Sie mittel Overloads überladen?

Laut Quelle Gambio sind derzeit folgende Bereiche in der Version 3.13.1.0 ansprechbar:

  • AdminApplicationBottomExtenderComponent
  • AdminApplicationTopExtenderComponent
  • AdminApplicationTopPrimalExtenderComponent
  • AdminCategoriesExtenderComponent
  • AdminCategoriesOverviewExtenderComponent
  • AdminEditCategoryExtenderComponent
  • AdminEditProductExtenderComponent
  • AdminHeaderExtenderComponent
  • AdminLanguageExtenderComponent
  • AdminOrderActionExtenderComponent
  • AdminOrderOverviewExtenderComponent (deprecated)
  • AdminOrderOverviewTableExtenderComponent (deprecated)
  • AdminOrderStatusMailExtenderComponent
  • ApplicationBottomExtenderComponent
  • ApplicationTopExtenderComponent
  • ApplicationTopPrimalExtenderComponent
  • CheckoutSuccessExtenderComponent
  • HeaderExtenderComponent
  • JSAccountExtenderComponent (deprecated)
  • JSAccountHistoryExtenderComponent (deprecated)
  • JSAddressBookProcessExtenderComponent (deprecated)
  • JSCallbackServiceExtenderComponent (deprecated)
  • JSCartExtenderComponent (deprecated)
  • JSCatExtenderComponent (deprecated)
  • JSCheckoutExtenderComponent (deprecated)
  • JSGlobalExtenderComponent (deprecated)
  • JSGVSendExtenderComponent (deprecated)
  • JSIndexExtenderComponent (deprecated)
  • JSManufacturersExtenderComponent (deprecated)
  • JSPriceOfferExtenderComponent (deprecated)
  • JSProductInfoExtenderComponent (deprecated)
  • JSSectionExtenderComponent
  • JSWishlistExtenderComponent (deprecated)
  • JSWithdrawalExtenderComponent (deprecated)
  • LoginExtenderComponent
  • OrderExtenderComponent
  • PDFOrderExtenderComponent
  • PostInstallationAdminExtendercomponent
  • PostInstallationShopExtendercomponent
  • PostUpdateAdminExtendercomponent
  • PostUpdateShopExtendercomponent

 

Bei den Extenders, wo deprecated in Klammern steht, sollte man darauf achten, dass man diese Hook-Points nicht mehr verwendet, da sie veraltet sind.

Wir als Full-Service-Agentur bedienen uns dieser Hook-Point-Technik und versuchen die Updatesicherheit für Ihren Shop damit zu gewährleisten bzw. zu erhöhen.

Wenn Sie Unterstützung benötigen, so können Sie uns jederzeit kontaktieren und wir werden gemeinsam mit Ihnen eine Lösung erarbeiten. Rufen Sie uns an oder nutzen Sie unser Kontaktformular!

Class-Overloading und Updatesicherheit beim Gambio Onlineshop

Heute geht es um die Thematik Class-Overloading beim Erstellen von Script-Dateien oder Modulen, die die Updatesicherheit bei einem Gambio Shopsystem erhöhen können.

Wofür braucht man das genau und welchen Mehrwert bietet diese Art von Programmierungen dem Shopbetreiber?

Folgendes erstmal zur Ausgangssituation:

Sie besitzen einen eigenen Onlineshop und mit der Zeit werden entweder aufgrund von Erweiterungen das System modifiziert oder es sollen neue Module implementiert bzw. programmiert werden. Nun werden diese Entwicklungen nicht „Updatesicher“ gestaltet, was bedeutet, dass die Änderungen an den Klassen der vorhandenen Originaldateien vorgenommen werden.

In gewissen Zeitabständen gibt es Servicepacks oder Masterupdates von Gambio, die man beispielsweise in seinem Internetshop von seinem externen Dienstleister einspielen lassen kann.

Nun gab es im Gambioshop an diverses Dateien Neuerungen und es erfordert, dass die modifizierten Originaldateien überschrieben werden müssen, um in den Genuss der neuen Features zu kommen.

Sämtliche Arbeiten und Anpassungen wären somit überschrieben und nicht mehr vorhanden, was absolut katastrophal wäre.

Also, wie bekommt man eine gewisse Sicherheit, dass die Daten und der Quellcode nicht überschrieben werden?

Das Zauberwort an dieser Stelle lautet: Class-Overloading

Dank der MainFactory kann man mit dem Überladen von PHP-Klassen das Verhalten und die Ausführung von Systemdateien beeinflussen ohne die Originaldatei anzufassen. Auch die multiple Überladung von Klassen ist hiermit möglich.

Damit das System so funktioniert, muss man sich an diverse Vorgaben halten, was den Aufbau der Datei und die Verzeichnisstruktur betrifft.

Beherzigt man diese Sachen, so kann man im Prinzip alles Überladen, was die MainFactory ausführt.

Laut Gambio sind derzeit folgende Verzeichnisse inkl. Unterverzeichnisse überladbar:

  • admin/includes/classes
  • admin/includes/gm/classes
  • gm/classes
  • GXEngine
  • GXMainComponents
  • includes/classes (außer includes/classes/scssphp)
  • includes/modules/order_total
  • includes/modules/payment
  • includes/modules/shipping
  • system/classes
  • system/core
  • system/extender
  • system/overloads

 

Des Weiteren gibt es das sogenannte Extender-System, welches zur Überladung benutzt werden kann. Hierzu mehr in einem anderen Beitrag.

Um nun zur eigentlichen Frage zurückzukommen:

Mit dem Overloading können Sie Kosten und Mehraufwand einsparen, wenn es um das Einspielen von Updates geht, da diese an zentralen Stellen ausgeführt werden und somit ohne Dokumentation ersichtlich ist, wo diese Dateien greifen.

Da das Thema relativ komplex ist, kann ich nur auf Bruchstücke und relevante Informationen für Sie als Shopbesitzer eingehen.

Wir als Full-Service-Agentur bedienen uns dieser Technik und versuchen die Updatesicherheit für Ihren Shop damit zu gewährleisten bzw. zu erhöhen.

Wenn Sie Unterstützung benötigen, so können Sie uns jederzeit kontaktieren und wir werden gemeinsam mit Ihnen eine Lösung erarbeiten. Rufen Sie uns an oder nutzen Sie unser Kontaktformular!