如何覆盖使用视图创建的块模板

时间:2017-05-26 09:16:40

标签: php templates drupal twig drupal-8

在Drupal 8上我尝试覆盖使用视图创建的块的模板。到目前为止,我的文件名为 block - views-block - xxx.html.twig ,这使我可以访问视图字段。

我要做content.view_build['#rows'].0['#rows']之类的事情来获取非常糟糕的行,但我找不到任何其他方式。我还要设置"显示内容"在视图设置上。

我无法让寻呼机工作。阅读Drupal的文档我找不到任何线索。

2 个答案:

答案 0 :(得分:0)

打开twig调试器(他在检查器工具中显示现在使用的所有模板)。 在检查器工具中,您会看到如下内容:

- html--internalviewpath.html.twig
- html--node--id.html.twig
- html.html.twig

然后只需使用此名称创建模板即可添加自定义架构。例如:html--node--id.html.twig。检查你可以听到,你看到了:

- html--internalviewpath.html.twig
+ html--node--id.html.twig (now twig use this template)
- html.html.twig

答案 1 :(得分:0)

我认为您应该覆盖视图模板而不是视图块模板。

查看模板可以找到命名约定here,列出here可以使用的变量。您现在可以将分页器,标题,行和其他视图元素放在模板的不同部分中。

如果需要覆盖视图行的内容,则需要根据在视图中显示内容的方式执行操作。
如果您使用内容的预告视图,则可以覆盖内容预告模板,例如“node - content_type - teaser.html.twig”,或者如果您在视图中使用字段,则必须覆盖每个字段的字段模板。