/** * {@inheritdoc} */ public function resolveFromArticle(ArticleInterface $article, $templateName = TemplateNameResolverInterface::TEMPLATE_NAME) { /** @param $route RouteInterface */ if (null !== ($route = $article->getRoute())) { if (null !== $route->getTemplateName()) { $templateName = $route->getTemplateName(); } if (RouteInterface::TYPE_COLLECTION === $route->getType() && null !== $route->getArticlesTemplateName()) { $templateName = $route->getArticlesTemplateName(); } } if (null !== $article->getTemplateName()) { $templateName = $article->getTemplateName(); } return $templateName; }
public function it_should_set_template_name(Route $route, ArticleInterface $article) { $this->setTemplateName(null, [])->shouldReturn([]); $this->setTemplateName(null, [RouteObjectInterface::ROUTE_OBJECT => $route])->shouldReturn([RouteObjectInterface::ROUTE_OBJECT => $route, RouteObjectInterface::TEMPLATE_NAME => 'article.html.twig']); $route->getTemplateName()->willReturn('test.html.twig'); $route->getContent()->willReturn(null); $route->getType()->willReturn(RouteInterface::TYPE_CONTENT); $this->setTemplateName(null, [RouteObjectInterface::ROUTE_OBJECT => $route])->shouldReturn([RouteObjectInterface::ROUTE_OBJECT => $route, RouteObjectInterface::TEMPLATE_NAME => 'test.html.twig']); $route->getTemplateName()->willReturn('test.html.twig'); $route->getType()->shouldBeCalled(); $article->getRoute()->willReturn($route); $article->getTemplateName()->willReturn(null); $this->setTemplateName($article, [RouteObjectInterface::ROUTE_OBJECT => $route])->shouldReturn([RouteObjectInterface::ROUTE_OBJECT => $route, RouteObjectInterface::TEMPLATE_NAME => 'test.html.twig']); $route->getTemplateName()->willReturn('test.html.twig'); $article->getRoute()->willReturn($route); $article->getTemplateName()->willReturn('article2.html.twig'); $this->setTemplateName($article, [])->shouldReturn([RouteObjectInterface::TEMPLATE_NAME => 'article2.html.twig']); }
public function it_should_resolve_template_name_from_collection_type_route_and_defaultArticlesTemplate_set_and_defaultTemplate_in_article_(Route $route, ArticleInterface $article) { $route->getType()->willReturn(RouteInterface::TYPE_COLLECTION); $route->getTemplateName()->willReturn('test2.html.twig'); $route->getArticlesTemplateName()->willReturn('article_template.html.twig'); $article->getRoute()->willReturn($route); $article->getTemplateName()->willReturn('custom_article.html.twig'); $this->resolve($article)->shouldReturn('custom_article.html.twig'); }
/** * {@inheritdoc} */ public function getRouteForArticle(ArticleInterface $article) { return $article->getRoute(); }