2016-10-18 70 views
3

我遇到了麻烦,我认为应该是相对简单的drupal 8视图。访问Drupal中的单个字段8个视图模板

我有一个名为国家的内容类型。我想在我的主页上显示3个最新的国家/地区节点。每个国家都在容器格中显示类“views-row”。我正在使用views - view - unformatted - countries - block_1.tpl来模拟输出。

我想输出类似下面的标记:

<a class="view-row-1" href="/link/to/node"> 
    <img src="source-of-teaser-image.png"> 
    <h3>Title of node</h3> 
</a> 

<a class="view-row-2" href="/link/to/node"> 
    <img src="source-of-teaser-image.png"> 
    <h3>Title of node</h3> 
</a> 

<a class="view-row-3" href="/link/to/node"> 
    <img src="source-of-teaser-image.png"> 
    <h3>Title of node</h3> 
</a> 

我有在模板访问个别领域的问题。如果我使用视图模式,我可以访问单个字段。如果我在视图中选择“显示字段”,我可以为“查看结果计数器”和“路径”添加一个字段,这将允许我添加“view-row-N”类并将标记链接到节点,但我无法单独访问这些字段。我有{{row.content}}变量,但是进一步挖掘变量(例如row.content.field_name)的任何尝试都不会给我带来任何影响,并且调用{{dump(row.content)}}会使网站崩溃。

出于两个原因,我无法将其输出为视图模式。在视图模式下,我无法访问“查看结果计数器”或“路径”字段,即使我有这些变量,某些字段也会嵌套在其他字段中(图像和标题嵌套在其中)

我觉得这真的应该那样简单

<a class="view-row-{{ row.content.view_result_counter }}" href="{{ row.content.path }}"> 

等,但我已经试过所有我能想到的。我完全走错路了吗?小枝和我目前还没有相处......

回答

0

使用内容/视图模式适用于您的情况。

1 /在“views-view-unformatted.html.twig”中,您可以使用“for”循环中的“loop.index”来获取当前行的索引并将其添加到“row_classes”变量。

2 /在你可以使用类似的节点树枝模板:

<a href="{{ path('entity.node.canonical', {'node': node.id}) }}"> 
    {{ content.field_img }} 
    {{ node.getTitle()}} 
</a> 

3 /你可能会得到额外的HTML,但你可以通过重载相关的模板摆脱大部分。

0

我不知道这是否是你所期望的,但是你可以重写字段模板:

  1. 启用嫩枝调试:https://www.drupal.org/node/1903374
  2. 检查您的网页浏览器(如果网站是在调试模式下有评论在HTML中与每个元素的模板路径)。 例如,这是场模板:需要核心/主题/稳定/模板/视图/视图 - 视图 - fields.html.twig
  3. 模板复制到你的主题文件夹
  4. 添加或修改标记。

您可以使用{{ dump(variable) }}{{ kint(variable) }}

3

我想通使用编制品的方式调试模板。

内,您的看法 - 视图 - unformatted.html.twig使用下面的代码来显示您的个人领域:

{% for row in rows %} 

{{ row.content['#view'].style_plugin.render_tokens[ loop.index0 ]['{{ YOUR_FIELD_NAME }}'] }} 

{% endfor %} 
0

你的情况,你应该使用视图 - 视图 - 场 - 国家 - block_1 .html.twig而不是views-view-unformatted - countries - block_1.html。树枝文件。

视图字段模板将迭代所有行结果。您的观点视场 - 国家 - block_1.html.twig应该包含下面的代码 -

<div> 
    <a class="view-row" href="{{variable-to-print-path }}"> 
    <img src="{{ image-path }}"> 
    <h3>{{ fields.title.content</h3> 
    </a> 
</div> 

您可以通过使用编制品功能像检查fields数组 - {{编制品(场)}}

从kint函数的输出中检查图像路径和锚点路径变量。

如果你想在view-view-unformatted - countries - block_1.html中做到这一点。小枝,那么你可以访问像下面的字段值 -

{% for row in rows %} 
    {% set photo = file_url(row['content']['#row']._entity.field_page_photo.entity.fileuri) %}   
    <li><img src={{ photo }} class="img-responsive img-circle"></li> 
{% endfor %} 
相关问题