【问题标题】:How to override a block template created using views如何覆盖使用视图创建的块模板
【发布时间】:2017-05-26 09:16:40
【问题描述】:

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

我必须做类似content.view_build['#rows'].0['#rows'] 的操作来获取非常糟糕的行,但我找不到任何其他方法。我还必须在视图设置中设置“显示内容”。

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

【问题讨论】:

    标签: php templates drupal twig drupal-8


    【解决方案1】:

    打开 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
    

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2018-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-23
        • 2016-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多