路由:从URL中选择依赖于模板

时间:2015-02-03 21:57:47

标签: bolt-cms

我想为特定内容类型提供打印机友好/纯文本版本。所以我需要使用依赖于URL的不同模板呈现相同的内容类型

示例:article / slug应该使用article.twig,而article / slug / print应该使用print.twig

这可能吗?或者我必须写一个扩展名吗?

1 个答案:

答案 0 :(得分:0)

所以这是一个小黑客,但它的确有效。我在routing.yml中使用这些行:

printcontentlink:
  path:               /{contenttypeslug}/{slug}/print
  defaults:           { _controller: 'Bolt\Controllers\Frontend::template',template:'print' }
  requirements:
    contenttypeslug:  'Bolt\Controllers\Routing::getAnyContentTypeRequirement'

并将其添加到print.twig的顶部:

{% set currentslug = paths.current|replace({'/print':''}) %}

{% setcontent record = currentslug  %}

更好的解决方案是编写新控制器或扩展具有“模板”参数的记录控制器。