From bc290f3beda363f7d4be74ef1ad4052671c57fed Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Thu, 25 Jun 2026 09:53:29 -0500 Subject: [PATCH] fix: Joomla 6 compat for webservices API route event Joomla 6 passes a BeforeApiRouteEvent object instead of the router directly. Extract the router from the event for Joomla 5/6 dual compat. --- .../src/Extension/MokoSuiteCrossWebServices.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/packages/plg_webservices_mokosuitecross/src/Extension/MokoSuiteCrossWebServices.php b/source/packages/plg_webservices_mokosuitecross/src/Extension/MokoSuiteCrossWebServices.php index f01e64ce..391c15db 100644 --- a/source/packages/plg_webservices_mokosuitecross/src/Extension/MokoSuiteCrossWebServices.php +++ b/source/packages/plg_webservices_mokosuitecross/src/Extension/MokoSuiteCrossWebServices.php @@ -35,8 +35,9 @@ class MokoSuiteCrossWebServices extends CMSPlugin implements SubscriberInterface ]; } - public function onBeforeApiRoute(&$router): void + public function onBeforeApiRoute($event): void { + $router = $event instanceof \Joomla\CMS\Event\AbstractEvent ? $event->getRouter() : $event; $defaults = ['component' => 'com_mokosuitecross']; $router->createCRUDRoutes('v1/mokosuitecross/posts', 'posts', $defaults); @@ -44,7 +45,6 @@ class MokoSuiteCrossWebServices extends CMSPlugin implements SubscriberInterface $router->createCRUDRoutes('v1/mokosuitecross/templates', 'templates', $defaults); $router->createCRUDRoutes('v1/mokosuitecross/logs', 'logs', $defaults); - // Action endpoint: dispatch cross-posts for an article (POST only) $router->addRoute( new \Joomla\Router\Route(['POST'], 'v1/mokosuitecross/dispatch', 'dispatch.dispatch', [], $defaults) );