【问题标题】:Drupal overwrite view default markupDrupal 覆盖视图默认标记
【发布时间】:2020-05-04 16:00:35
【问题描述】:

我是 Drupal 8 的新手,正在尝试构建自定义主题。覆盖主题适用于段落、块等,但不适用于视图。我需要你的帮助来告诉我如何覆盖视图的标记。我已经在自定义文件夹中创建了一个 .twig 文件并对其进行了测试。它有效。

这就是我里面的东西:

{% for row in rows %}
  <div{{ row.attributes.addClass(row_classes) }}>
    {{ row.content }}
  </div>
{% endfor %}

{{ row.content }} 为我提供了默认 Drupal 视图标记中所需的每个元素。我想定制 HTML。如:

<h1 class="headline">
    {row.title}
</h1>
<p class="text">
    {row.text}
</p>
<img src="{row.image}" />

我没有找到从row 获取诸如标题之类的值的方法。我尝试了row.{field_name}row.content.{field_name} 之类的方法,但还没有任何效果。无论如何可以通过机器名称访问这些字段吗?

【问题讨论】:

标签: drupal drupal-8 drupal-views


【解决方案1】:

显示内容的简单方法是将视图设置为具有视图模式的内容列表。例如:如果您想以显示模式 teaser 显示节点内容类型 article,那么您将得到 node--article--teaser.html.twig 被渲染。 然后你可以修改所需格式的树枝文件。

<h1 class="headline">
  {{ node.title.value }}
</h1>
<p class="text">
  {{ node.body.value }}
</p>
<img src="{{ node.field_image.entity.uri.value }}" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多