SEIGI Tag Manager - Dokumentacja Integracji z modułem jPresta PageCache
Wprowadzenie
SEIGI Tag Manager to moduł umożliwiający efektywne zarządzanie tagami w środowisku PrestaShop. Integracja modułu wymaga wklejenia specjalnego fragmentu kodu, który aktywuje jego funkcjonalności w odpowiednich miejscach systemu.
Kiedy jest to potrzebne?
Integracja jest konieczna tylko wtedy, gdy moduł jPresta PageCache lub inny moduł nadpisujący dispatcher blokuje wywołanie zdarzenia:
Hook::exec('actionDispatcher', $params_hook_action_dispatcher);
W takich przypadkach SEIGI Tag Manager nie będzie działać poprawnie bez odpowiedniej modyfikacji. Dotyczy to wszystkich modułów, które nadpisują dispatcher i mogą uniemożliwiać wywołanie hooków.
Instrukcja integracji
Aby poprawnie zintegrować SEIGI Tag Manager z Twoim systemem, należy wkleić poniższy kod w odpowiednim miejscu w pliku:
// SEIGI Tag Manager Dispatcher
$stmInstance = Module::getInstanceByName('seigitagmanager');
if ($stmInstance) {
$stmInstance->hookActionDispatcher([]);
}
// End:SEIGI Tag Manager Dispatcher
Przykład integracji w module jPresta PageCache
W przypadku integracji z modułem jPresta PageCache lub innym, który cachuje i blokuje wywołanie zdarzenia Hook::exec, kod należy dodać w funkcjach odpowiedzialnych za dispatcher, czyli dispatch_15() i dispatch_16(). Modyfikacje należy wprowadzić w pliku /override/classes/Dispatcher.php (jeśli istnieje).
Integracja w funkcji dispatch_15()
/*
* module: pagecache
* date: 2024-06-24 21:08:10
* version: 9.4.1
*/
private function dispatch_15()
{
$this->getController();
if (!$this->controller)
$this->controller = $this->default_controller;
if ($this->_isPageCacheActive())
{
// SEIGI Tag Manager Dispatcher
$stmInstance = Module::getInstanceByName('seigitagmanager');
if ($stmInstance) {
$stmInstance->hookActionDispatcher([]);
}
// End:SEIGI Tag Manager Dispatcher
$pagecacheInstance = Module::getInstanceByName('pagecache');
if ($pagecacheInstance) {
$pagecacheInstance->hookActionDispatcherBefore();
}
}
$controller_class = '';
switch ($this->front_controller)
{
case self::FC_FRONT:
// dalsza logika
break;
}
}
Integracja w funkcji dispatch_16()
private function dispatch_16()
{
$this->getController();
if (!$this->controller)
$this->controller = $this->default_controller;
if ($this->_isPageCacheActive())
{
// SEIGI Tag Manager Dispatcher
$stmInstance = Module::getInstanceByName('seigitagmanager');
if ($stmInstance) {
$stmInstance->hookActionDispatcher([]);
}
// End:SEIGI Tag Manager Dispatcher
$pagecacheInstance = Module::getInstanceByName('pagecache');
if ($pagecacheInstance) {
$pagecacheInstance->hookActionDispatcherBefore();
}
}
$controller_class = '';
switch ($this->front_controller)
{
case self::FC_FRONT:
// dalsza logika
break;
}
}
Uwagi końcowe
- Kod SEIGI Tag Manager Dispatcher powinien być umieszczony przed wywołaniami innych hooków, aby zapewnić prawidłowe działanie.
- Upewnij się, że moduł SEIGI Tag Manager oraz jPresta PageCache są aktywne przed testowaniem integracji.
- Modyfikacje należy wprowadzać w pliku
/override/classes/Dispatcher.php(jeśli istnieje).
W razie problemów z integracją, prosimy o kontakt z działem wsparcia technicznego.