ich möchte alles was urls (für menschen) modifiziert, deaktiveren. geht das?
zbs. ich möchte nicht sehen www.foo.bar/some/articlecategory/names/ sondern www.foo.bar/controller/action/arguments (oder was auch immer für ne schema shopware benutzt).
oder gibts ne einfachere weg zu wissen wohin genau eine request ging?
(xdebug wäre ne workaround, aber keine lösung)
In Shopware, all requests will be dispatched to the corresponding controller. Internally, any request is mapped to an URL like this: my-shop.com - my shop Resources and Information.. Speaking of controllers, the following parts can be distinguished:
http://my-shop.com - the protocol and domain part
frontend - the module
listing - the controller
index - the action
müsste ich jetzt eine controller namens cat finden, oder?
es gibt aber unter engine/Shopware/Controllers/Frontend keine datei namens cat.php.
und auch nirgens anders ist solche controller definiert:
ok, die werte aus Grundeinstellungen > „seo“ > sonstige SEO-Urls werden anscheinend in die tabelle s_core_config_values gespeichert… am besten da nicht reinschauen…
und weil da keine einträge für cat gibt/gab, wundere ich von wo diese übersetzung jetzt kommt…
genau so ist es, ein paar Sachen sind leider noch hart kodiert.
BTW: Die Idee mit dem „Routing abstellen“ finde ich eigentlich ganz nett, das könnte man später mal als Config-Switch machen. Zur Zeit ginge das auch mit dem folgenden Plugin (weiß nicht, ob es praktikabel ist, aber ich wollte es mal testen):
assertMinimumVersion('4.3.0')) {
throw new \RuntimeException('At least Shopware 4.3.0 is required');
}
$this->subscribeEvent(
'Enlight_Controller_Front_RouteStartup',
'onAfterRouter'
);
return true;
}
public function onAfterRouter()
{
/** @var Router $router */
$router = Shopware()->Container()->get('router');
$router->setMatchers(array_filter($router->getMatchers(), function(MatcherInterface $matcherInterface) {
return !$matcherInterface instanceof RewriteMatcher;
}));
$router->setGenerators(array_filter($router->getGenerators(), function(GeneratorInterface $generatorInterface) {
return !$generatorInterface instanceof RewriteGenerator;
}));
}
}