2016-10-18 72 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 %} 
相關問題