Beantwortet NOVA Child-Template mit Hooks?

fibergirl

Sehr aktives Mitglied
14. April 2016
832
262
Hallo,

mein NOVA Child braucht ein paar Supportfunktionen, die ich derzeit mittels Plugin realisiert habe.

Aber: ginge das eigentlich auch direkt im Template mittels $dispatcher->listen(...) in der Bootstrap.php, an Hooks wie in einem Plugin?
Das wäre soo praktisch. Kein Extra-Plugin mehr.

Dank&Gruß,
fibergirl
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.369
347
Halle (Saale)
Wir haben uns explizit dagegen entschieden, um solche Logik nur an einer Stelle zu haben und durch den Shopbetreiber deaktivierbar zu haben.
Es kann dich aber niemand daran hindern, dir den Dispatcher im Template z.B. in deiner Boot-Methode einfach selbst zu holen und zu nutzen:
Code:
$dispatcher = JTL\Events\Dispatcher::getInstance();
$dispatcher->listen('shop.hook.' . \HOOK_SMARTY_INC, function (array $args) {
   die('dispatched@template!');
});
 
  • Gefällt mir
Reaktionen: fibergirl

Kamil Czaja

Aktives Mitglied
20. November 2020
25
2
Wir haben uns explizit dagegen entschieden, um solche Logik nur an einer Stelle zu haben und durch den Shopbetreiber deaktivierbar zu haben.
Es kann dich aber niemand daran hindern, dir den Dispatcher im Template z.B. in deiner Boot-Methode einfach selbst zu holen und zu nutzen:
Code:
$dispatcher = JTL\Events\Dispatcher::getInstance();
$dispatcher->listen('shop.hook.' . \HOOK_SMARTY_INC, function (array $args) {
   die('dispatched@template!');
});
Hi,

sollte das noch funktionieren? Wenn ich das im Childtemplate in der Boot Methode einfüge bekomme ist nur ein 500er.

Gruß Kamil
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.756
2.183
Berlin
Das sollte dann eher
$dispatcher = \JTL\Events\Dispatcher::getInstance();

sein oder wenn du use JTL\Events\Dispatcher; verwendest:

$dispatcher = Dispatcher::getInstance();
 
  • Gefällt mir
Reaktionen: Kamil Czaja

Kamil Czaja

Aktives Mitglied
20. November 2020
25
2
Danke dir,

so klappt es: $dispatcher = Dispatcher::getInstance();

Bei JTL\Events\Dispatcher::getInstance() kann er das, aus welchen Gründen auch immer, nicht finden, es kommt nur "PHP Fatal error: Uncaught Error: Class "Template\\Childtheme\\JTL\\Events\\Dispatcher" not found in....".
Er versucht die Klasse wohl einfach mit einem falschen Pfad aufzurufen
 

Ähnliche Themen