Prestashop - Überschreibungsfunktion im vorhandenen Prestashop-Modul

8

Ich möchte das vorhandene Prestashop-Modul ändern, ohne es zu kopieren und neu zu erstellen. Ich weiß, dass es möglich ist, .tpl-Dateien in Prestashop zu überschreiben, aber ist es möglich, dasselbe mit PHP-Klassen zu tun? Zum Beispiel möchte ich Blockcart ändern, so dass es oben angehängt werden kann. Da die Originalversion diesen Haken nicht hat, muss ich die Funktion install () ändern! Ich kann die ursprüngliche Quelle nicht ändern (es wäre eine schlechte Idee, oder?) Datei Ich muss die install () Funktion überschreiben, indem ich das blockcart Modul vererbe. Ist das möglich und wo finde ich ein Beispiel?

    
Ivan Milosavljevic 26.05.2011, 15:51
quelle

3 Antworten

11

Ich verwende meine eigene Überschreibung für die FrontController-Klasse, um die Ausgabe des Moduls an beliebigen Stellen in tpl-Dateien zu ermöglichen - das bedeutet, dass das Modul keinen bestimmten Hook unterstützen muss. Es wird über ein Smarty-Plugin implementiert, so dass Sie zum Beispiel verwenden können:

%Vor%

Mit dem obigen Befehl wird das Modul gezwungen, das auszugeben, was es anzeigen würde, wenn es an die rechte Spalte angehängt wäre, in der das obige Tag eingefügt ist (das kann irgendwo in irgendeiner tpl-Datei sein). Sie können das Modul aus der rechten Spalte "aushängen", so dass es nur anzeigt, wo Sie es mit dieser Technik verwenden möchten. Ich habe es auf einer Produktionsstätte mit großem Erfolg eingesetzt.

Es gibt eine Reihe von Artikeln, die beschreiben, wie es funktioniert (mit dem erforderlichen Code), verfügbar unter:

Prestashop 1.4 Plugins

    
Paul Campbell 02.09.2011, 22:54
quelle
3

In Prestashop 1.4 können Sie Hauptklassen und Modulvorlagen überschreiben Heute ist es nicht möglich, eine Modul-PHP-Datei zu überschreiben, aber wir arbeiten daran.

    
Franck Brignoli 31.08.2011 09:20
quelle
1

Seit Version 1.6.0.11 von PrestaShop gibt es eine neue Funktion, mit der Entwickler die Instanzklassen eines Moduls überschreiben können.

Überschreiben Sie die Instanzklasse eines Moduls, indem Sie sie erweitern Um die Instanzklasse eines Moduls zu überschreiben, müssen Sie sie erweitern, indem Sie der erweiterten Klasse den gleichen Namen geben und das Suffix Überschreibung hinzufügen:

%Vor%

Quelle: Ссылка

    
joseantgv 30.05.2016 22:10
quelle

Tags und Links