Moin an Alle,
Wir erstellen ein neues Plugin mit Routingfunktionalität, damit wir auf Artikelliste für Fahrzeugmodelle umleiten können.
Unsere Frage: wie sollte der Code für HOOK_ROUTER_PRE_DISPATCH für einen MyRouterController extends ProductListController aussehen ?
Ist es überhaupt möglich ? oder müssen wir letztendlich new ProductListController benutzen ?
Und wenn wir den $router = $args['router] verwenden, wie greifen wir auf RouteGroup, damit wir mit ->get oder ->post eigene Routen definieren können.
Anscheinend geht es nur mit $router->addRoute
Wir brauchen also ein gutes Beispiel
Unter GitLab haben wir so etwas gefunden:
Wir erstellen ein neues Plugin mit Routingfunktionalität, damit wir auf Artikelliste für Fahrzeugmodelle umleiten können.
Unsere Frage: wie sollte der Code für HOOK_ROUTER_PRE_DISPATCH für einen MyRouterController extends ProductListController aussehen ?
Ist es überhaupt möglich ? oder müssen wir letztendlich new ProductListController benutzen ?
Und wenn wir den $router = $args['router] verwenden, wie greifen wir auf RouteGroup, damit wir mit ->get oder ->post eigene Routen definieren können.
Anscheinend geht es nur mit $router->addRoute
Wir brauchen also ein gutes Beispiel
Unter GitLab haben wir so etwas gefunden:
PHP:
public function boot(Dispatcher $dispatcher): void
{
parent::boot($dispatcher);
$dispatcher->hookInto(\HOOK_ROUTER_PRE_DISPATCH, function ($args) {
$config = Shopsetting::getInstance()->getAll();
// config array misused - yout could also set the plugin instance
$config['link'] = $this->getPlugin()->getLinks()->getLinks()->first();
/** @var Router $router */
$router = $args['router'];
$controller = new APIController(
$this->getDB(),
$this->getCache(),
$router->getState(),
$config,
Shop::Container()->getAlertService()
);
$authMiddleware = new APIAuthMiddleware();
//@see https://route.thephpleague.com/5.x/routes/
$router->addRoute('tmrapi[/{id:\d+}]', [$controller, 'show']);
$router->addRoute('tmrapi/{id:\d+}', [$controller, 'delete'], 'tmrapiDelete', ['DELETE'], $authMiddleware);
$router->addRoute('tmrapi/{id:\d+}', [$controller, 'update'], 'tmrapiCreate', ['PUT']);
$router->addRoute('tmrapi', [$controller, 'create'], 'tmrapiCreate', ['POST']);
$router->addRoute('tmrapitest[/{slug}]', [$controller, 'getResponse'], 'tmaItemList');
});
}