2015-03-16 6 views
1

Я строю тематический вид в Drupal 8 с помощью ветки. Я хотел бы использовать фильтры пчел в переменной row.content в шаблоне views-view-unformatted.html.twig.Применение пчелиных фильтров в Drupal 8 Просмотров Шаблон

Кажется, что row.content - это массив, поэтому манипуляция строкой струны не работает. Тем не менее, он печатает на странице как строку (представление - это всего лишь список терминов таксономии).

То, что я хотел бы сделать, это сбросить выходные данные, поэтому таксономические термины с пробелами могут иметь действительные hrefs. См. Фильтр замены в приведенном ниже коде.

<ul class="nav nav-tabs" role="tablist"> 
{% for row in rows %} 
    <li role="presentation" class="{{loop.first ? 'active' : ''}}"> 
    <a href="#{{row.content | replace({" ", "-"})}}" aria-controls="{{row.content}}" role="tab" data-toggle="tab">{{row.content}}</a> 
    </li> 
{% endfor %} 
</ul> 

Это только что выведет <a href="#">. Кто-нибудь знает, как получить доступ к необработанному текстовому значению, которое выводится во время интерполяции веток?

Спасибо!

+0

Можете ли вы сделать '{{dump (row.content)}}'? Это должно дать вам список значений в массиве, с которым нужно работать. – sjagr

+0

Привет @sjagr. Я попробовал это, но я не получал никаких данных, отправляемых с сервера. Я думаю, что это вызывает исключение памяти из-за круговых ссылок в переменной row.content. Не уверен, хотя. – dtraft

+0

[Попробуйте другие подходы здесь, чтобы узнать, можете ли вы что-нибудь найти.] (Https://www.drupal.org/node/1906780) Убедитесь, что вы отчитались, чтобы другие могли узнать, поняли ли вы это! – sjagr

ответ

1

Я столкнулся с этим сам, это было сложно, потому что кинты и дампы вылетают на представлениях. есть быстрое обходное решение, чтобы добраться до битов, поместите это под {% для строки в строках%} в вашем шаблоне стиля просмотров twig.

<ol> 
{% for key, value in row.content %} 
    <li>{{ key }}</li> 
{% endfor %} 
</ol> 

загрузить страницу с этой & дает вам ключи, чтобы увидеть, я проверил их каждый с помощью следующей команды сброса, просто добавил внизу, чтобы проверить.

{{ dump(row.content['#row']) }} 

выше свалка показала все товары в #row, где я копал в и нашел поле я хотел внутри _entity (может отличаться для вас), то я хотел бы заменить пробела тира и заставить строчный.

Все прошлое row.content ['# row'], вероятно, будет отличаться для вас, вам нужно немного вычислить в массиве команду сброса, упомянутую выше. Ниже приведена строка, в которой я получил то, что хотел.

{{ row.content['#row']._entity.title[0].value|replace(' ', '-')|lower }} 

Ниже приведен пример шаблона. Для смены имени viewname и block-3 ваша настройка.

просмотров ракурса-неотформатированная - ViewName - блок-3.html.twig

{% for row in rows %} 
    {% 
     set row_classes = [ 
      default_row_class ? 'views-row', 
      'something', 
      'kint-cant', 
     ] 
    %} 
    {# My field value unformatted #} 
    <!-- {{ row.content['#row']._entity.title[0].value }} --> 

    <section{{ row.attributes.addClass(row_classes) }} id="{{ row.content['#row']._entity.title[0].value|replace(' ', '-')|lower }}"> 
     {{ row.content }} 
    </section> 
{% endfor %} 

Я уверен, что есть много других способов сделать это, но он работал для меня, как быстро решение для печати полей просмотров в шаблоне стиля, что действительно полезно.

+0

Не должен ли этот вопрос находиться на доске Drupal stackoverflow?Есть несколько других вопросов, схожих с этим, без рабочего ответа. – Macronomicus