From 92e346296e5dc86a04368dd534d18de2f5512a24 Mon Sep 17 00:00:00 2001 From: Luke Towers Date: Thu, 19 Apr 2018 10:26:50 -0600 Subject: [PATCH] Added cms.ajax.beforeRunHandler event --- modules/cms/classes/Controller.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/modules/cms/classes/Controller.php b/modules/cms/classes/Controller.php index ac29d6ad7..5b5c3d32a 100644 --- a/modules/cms/classes/Controller.php +++ b/modules/cms/classes/Controller.php @@ -687,6 +687,28 @@ class Controller */ protected function runAjaxHandler($handler) { + /** + * @event cms.ajax.beforeRunHandler + * Provides an opportunity to modify an AJAX request + * + * The parameter provided is `$handler` (the requested AJAX handler to be run) + * + * Example usage (forwards AJAX handlers to a backend widget): + * + * $this->controller->bindEvent('ajax.beforeRunHandler', function ($handler) { + * if (strpos($handler, '::')) { + * list($componentAlias, $handlerName) = explode('::', $handler); + * if ($componentAlias === $this->getBackendWidgetAlias()) { + * return $this->backendControllerProxy->runAjaxHandler($handler); + * } + * } + * }); + * + */ + if ($event = $this->fireSystemEvent('cms.ajax.beforeRunHandler', [$handler])) { + return $event; + } + /* * Process Component handler */