Eigenes Plugin mit URL rewrite

Ja, ein Beispiel kannst du bekommen: :slight_smile: 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
1 „Gefällt mir“