From 0ace4c14758f510fa884cd030e8569afc1aae7de Mon Sep 17 00:00:00 2001 From: David Buchmann Date: Thu, 7 Jun 2012 14:20:01 +0200 Subject: [PATCH] map _template default into request attributes --- Routing/DynamicRouter.php | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/Routing/DynamicRouter.php b/Routing/DynamicRouter.php index b92f7ed..8049838 100644 --- a/Routing/DynamicRouter.php +++ b/Routing/DynamicRouter.php @@ -6,6 +6,7 @@ use Symfony\Component\DependencyInjection\ContainerAwareInterface; use Symfony\Cmf\Component\Routing\DynamicRouter as BaseDynamicRouter; +use Symfony\Cmf\Component\Routing\RouteObjectInterface; /** * A router that reads route entries from an Object-Document Mapper store. @@ -57,18 +58,31 @@ public function match($url) { $defaults = parent::match($url); - if (isset($defaults['_content'])) { - if (! $request = $this->container->get('request')) { - throw new \Exception('Request object not available from container'); - } + if (isset($defaults[RouteObjectInterface::CONTENT_OBJECT])) { + $request = $this->getRequest(); - $request->attributes->set(self::CONTENT_KEY, $defaults['_content']); - unset($defaults['_content']); + $request->attributes->set(self::CONTENT_KEY, $defaults[RouteObjectInterface::CONTENT_OBJECT]); + unset($defaults[RouteObjectInterface::CONTENT_OBJECT]); + } + + if (isset($defaults[RouteObjectInterface::TEMPLATE_NAME])) { + $request = $this->getRequest(); + + $request->attributes->set(self::CONTENT_TEMPLATE, $defaults[RouteObjectInterface::TEMPLATE_NAME]); + unset($defaults[RouteObjectInterface::TEMPLATE_NAME]); } return $defaults; } + public function getRequest() + { + if (!$request = $this->container->get('request')) { + throw new \Exception('Request object not available from container'); + } + return $request; + } + protected function getLocale($parameters) { $locale = parent::getLocale($parameters);