From 53d16fd889e1b1100860cd6ad9e037f97121e067 Mon Sep 17 00:00:00 2001 From: fSerny Date: Thu, 17 May 2012 11:50:28 +0000 Subject: [PATCH] [*] PROJECT : Adding hook on dispatcher git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@15359 b9a71923-0436-4b27-9f14-aed3839534dd --- classes/Dispatcher.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/classes/Dispatcher.php b/classes/Dispatcher.php index 5667238d2..53822c6c5 100644 --- a/classes/Dispatcher.php +++ b/classes/Dispatcher.php @@ -267,6 +267,7 @@ class DispatcherCore if (!isset($controllers[$this->controller])) $this->controller = $this->controller_not_found; $controller_class = $controllers[$this->controller]; + $paramsHookActionDispatcher = array('controller_type' => self::FC_FRONT, 'controller_class' => $controller_class, 'is_module' => 0); break; // Dispatch module controller for front office @@ -283,6 +284,7 @@ class DispatcherCore $controller_class = $module_name.$this->controller.'ModuleFrontController'; } } + $paramsHookActionDispatcher = array('controller_type' => self::FC_FRONT, 'controller_class' => $controller_class, 'is_module' => 1); break; // Dispatch back office controller + module back office controller @@ -308,6 +310,7 @@ class DispatcherCore $controller_class = $controllers[$this->controller].(strpos($controllers[$this->controller], 'Controller') ? '' : 'Controller'); } } + $paramsHookActionDispatcher = array('controller_type' => self::FC_ADMIN, 'controller_class' => $controller_class, 'is_module' => 1); } else { @@ -315,6 +318,7 @@ class DispatcherCore if (!isset($controllers[$this->controller])) $this->controller = $this->controller_not_found; $controller_class = $controllers[$this->controller]; + $paramsHookActionDispatcher = array('controller_type' => self::FC_ADMIN, 'controller_class' => $controller_class, 'is_module' => 0); if (file_exists(_PS_ADMIN_DIR_.'/tabs/'.$controller_class.'.php')) $retrocompatibility_admin_tab = _PS_ADMIN_DIR_.'/tabs/'.$controller_class.'.php'; @@ -337,7 +341,15 @@ class DispatcherCore // Instantiate controller try { - Controller::getController($controller_class)->run(); + // Loading controller + $controller = Controller::getController($controller_class); + + // Execute hook dispatcher + if (isset($paramsHookActionDispatcher)) + Hook::exec('actionDispatcher', $paramsHookActionDispatcher); + + // Running controller + $controller->run(); } catch (PrestaShopException $e) {