Ja, ein Beispiel kannst du bekommen: engine/Shopware/Plugins/Community/Frontend/SwagSeoRoutes/Bootstrap.php [code]<?php use \Shopware\Components\Routing\Generators\RewriteGenerator;
/**
- @category Shopware
- @package Shopware\Plugins\SwagSeoRoutes
-
@copyright Copyright © shopware AG (http://www.shopware.de)
/
class Shopware_Plugins_Frontend_SwagSeoRoutes_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
/*-
@return bool
*/
public function install()
{
$this->subscribeEvent( ‘Enlight_Controller_Front_RouteStartup’, ‘onRouteStartup’ ); return true; } /** * @param Enlight_Controller_EventArgs $args */ public function onRouteStartup($args) { /** @var \Shopware\Components\Routing\Router $router */ $router = $this->get(‘router’); $generators = $router->getGenerators(); $generators = array_map(function($generator) { if($generator instanceof RewriteGenerator) { return new NewRewriteGenerator( $this->get(‘dbal_connection’), $this->get(‘query_alias_mapper’) ); } else { return $generator; } }, $generators); $router->setGenerators($generators); } } class NewRewriteGenerator extends RewriteGenerator { protected function getOrgQueryArray($query) { $orgQuery = [‘sViewport’ => $query[‘controller’]]; switch ($query[‘controller’]) { case ‘meinPlugin’: $orgQuery[‘action’] = $query[‘action’]; $orgQuery[‘groupid’] = $query[‘groupid’]; $orgQuery[‘id’] = $query[‘id’]; return $orgQuery; default: return parent::getOrgQueryArray($query); } } }[/code] Das ist aber noch nicht ganz optimal. Es wäre ja schön, wenn man weitere Routen ohne extra Plugin hinzufügen kann. Vielleicht hast du ja eine Idee? Gruß Heiner
-
@return bool