Skip to content

Commit

Permalink
added a way to pass default options to splitTemplateName
Browse files Browse the repository at this point in the history
  • Loading branch information
fabpot committed May 27, 2010
1 parent 28c0329 commit 85d4a0d
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 9 deletions.
6 changes: 3 additions & 3 deletions src/Symfony/Framework/TwigBundle/Loader/Loader.php
Expand Up @@ -43,7 +43,7 @@ public function getSource($name)
return $name->getContent();
}

list($name, $options) = $this->engine->splitTemplateName($name);
list($name, $options) = $this->engine->splitTemplateName($name, array('renderer' => 'twig'));

$template = $this->engine->getLoader()->load($name, $options);

Expand All @@ -67,7 +67,7 @@ public function getCacheKey($name)
return (string) $name;
}

list($name, $options) = $this->engine->splitTemplateName($name);
list($name, $options) = $this->engine->splitTemplateName($name, array('renderer' => 'twig'));

return $name.'_'.serialize($options);
}
Expand All @@ -88,7 +88,7 @@ public function isFresh($name, $time)
return false;
}

list($name, $options) = $this->engine->splitTemplateName($name);
list($name, $options) = $this->engine->splitTemplateName($name, array('renderer' => 'twig'));

return $this->engine->getLoader()->isFresh($name, $options, $time);
}
Expand Down
21 changes: 15 additions & 6 deletions src/Symfony/Framework/WebBundle/Templating/Engine.php
Expand Up @@ -119,17 +119,26 @@ protected function escapeParameters(array $parameters)
}

// Bundle:controller:action(:renderer)
public function splitTemplateName($name)
public function splitTemplateName($name, array $defaults = array())
{
$parts = explode(':', $name, 4);

$options = array(
'bundle' => str_replace('\\', '/', $parts[0]),
'controller' => $parts[1],
'renderer' => isset($parts[3]) && $parts[3] ? $parts[3] : 'php',
'format' => '',
$options = array_replace(
array(
'renderer' => 'php',
'format' => '',
),
$defaults,
array(
'bundle' => str_replace('\\', '/', $parts[0]),
'controller' => $parts[1],
)
);

if (isset($parts[3]) && $parts[3]) {
$options['renderer'] = $parts[3];
}

$format = $this->container->getRequestService()->getRequestFormat();
if (null !== $format && 'html' !== $format) {
$options['format'] = '.'.$format;
Expand Down

0 comments on commit 85d4a0d

Please sign in to comment.