Jump to content

Neuen Hook erstellen und einbinden


Recommended Posts

Hallo!

Ich bin gerade mit PS 1.5.2 dabei ein neues Thema zu erstellen. Dafür benötige ich min. 2 neue Hooks. Ich habe die Hooks schon in die ps_hook eingetragen möchte nun diese hooks auch nutzen.

 

Jetzt lese ich das man, wie sonst auch üblich, den hok ja in der FrontController.php bekannt geben muss.

Jedoch hat sich wohl der Speicherort dieser FrontController.php-Datei geändert.

Until now, you could only override PrestaShop's classes and controllers by placing the appropriate file(s) in either the /override/classes folder or the /override/controllers one. The module API in PrestaShop 1.5 now enables you to override classes and controllers directly from a module.

http://doc.prestasho...hop1.5-Override

 

Nun da kommt mir nun die Frage auf, was ist wenn ich das thema mal wechsel? Da die FrontController.php sich nicht mehr im thems Ordner befindet müsste man dies nach jedem themewechsel manuell ändern bzw. löschen. Oder sehe ich das Falsch?

 

Ich möchte nun als erstes die zwei hooks (cartBlock und userBlock erstellen um dort zwei Module anzuzeigen (den Warenkorb und die Login-Box.

 

Wie sollte ich nun am besten vorgehn um auch einen einfach wechsel zu bewerkstellen?

leider komme ich mit dem hooksystem nicht klar. Ich schaffe es nicht die zwei Module an die richtige Stelle zu bekommen. Die Entwickler-Wikis sind leider nicht nicht auf 1.5 geupdatet.

 

Danke für die Hilfe.

Link to comment
Share on other sites

Die Entwickler-Wikis sind schon auf 1.5. upgedated: http://doc.prestashop.com/display/PS15/Developer+Guide

 

Sonst solche speziellen Fragen bitte im Englischen Forum posten. Dort lesen die Entwickler von PS mit und diese werden sie dann entsprechend antworten. In den Community Foren befinden sich fast ausschließlich Anwender, die nicht einmal wissen was ein Hook ist.

 

Evtl. sind deine Hooks auch schon vorhanden. Hast du schon unter den Modulen -> Positionen nachgesehen ? Dort sind jede Menge neue Möglichkeiten dazugekommen, die du verwenden kannst.

Link to comment
Share on other sites

Nun da kommt mir nun die Frage auf, was ist wenn ich das thema mal wechsel? Da die FrontController.php sich nicht mehr im thems Ordner befindet müsste man dies nach jedem themewechsel manuell ändern bzw. löschen. Oder sehe ich das Falsch?

 

Mahlzeit.. Genau aus diesem Grund gibts die Overrides, damit man eben nicht manuell alles abändern muss.

Die Datei die du gesucht hast befindet sich hier -> classes/controller/frontcontroller.php

 

und das gleiche nochmal overrides/classes/controller/FrontController.php

Link to comment
Share on other sites

Okay, dachte unter die Arme greifen hört sich eher nach meinem Problemm als Installation und einrichtung. Denn installiert und eingerichtet ist alles, nur ich benötige weitere hooks.

 

Vielen Dank werde dies mal im Englischen Forum erneut Fragen.

Link to comment
Share on other sites

Eigentlich sollte die Frage bereits ausreichend beantwortet sein.... Die Wiki ist aktuell und um Theme-Änderungen zu umgehen, die dann verlorengehen sind die Override-Funktionen da.

 

Ich denke mal die Hooks sind mehr als ausreichend. Hast du schon im BO diese angesehen ? Dort gibt es nahezu jede Möglichkeit. Vermutlich sind aber deine Module aber nicht korrekt programmiert, so dass sie sich nicht einhängen lassen ? Überprüfe die angegebenen triggers und möglichen Variablen. Früher war der Befehl hook angegeben, jetzt heissen die Befehle action oder display.

 

http://doc.prestasho...+PrestaShop+1.5

 

Die Untertitel der Forumskategorien beschreiben was wo hineingehört.

Link to comment
Share on other sites

Im Prinzip hat sich an den overrides nicht viel geändert. Alle overrides für php-Dateien sind nach wie vor unter /overrides zu erstellen.

 

Overrides für Module sind natürlich im Theme zu hinterlegen. Nur das ist neu und auch logisch, weil man mit Multishop ja mehrere Themes verwenden kann, wo man den Effekt dann einer Änderung evtl. auch nicht im anderen Theme haben möchte, wenn man ein Modul anpasst. Nehmen wir an du änderst etwas an der css für das Modul blockmanufacturers. Dann gehört die Änderung hier rein:

themes/default/css/modules/blockmanufacturer/blockmanufacturer.css

 

Das default Theme entweder nicht ändern oder clonen unter einem anderen Namen und die Änderung am Clone durchführen.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...