Условно выводится по типу контента с помощью Twig

Я хочу пометить отображение представлений на основе типа содержимого. В моих попытках сделать это, я создал представления, показывающие все типы контента. Я добавил все поля, которые мне нужны, а также включил поле Content: Type. Это поле, которое я пытаюсь использовать для условного форматирования вывода (если это тип содержимого блога, используйте этот html, а для всех других типов содержимого используется другой html).

Это то, что я пробовал до сих пор, но это условие не запускается вообще

Я создал поля view-view-myexample.html.twig

{% if fields.type.content == 'blog' %}
<div class="blog-content views-row">
  <div class="showcase" style="background-color: {{ fields.field_color.content }};">

</div>
{% else %}

<div class="other-content views-row">
   <div class="showcase">
   {{ fields.title.content}}
   {{ fields.field_image.content }}
   </div>
</div>
{% endif %}
6 голосов | спросил ta-im-ok 26 Jam1000000amThu, 26 Jan 2017 07:42:04 +030017 2017, 07:42:04

1 ответ


2

Возможно, потому что {{ fields.type.content }} = <div class="something">blog</div>

, попробуйте

{% if fields.type.content|striptags == {{ 'blog'|t }} %}

Если вы не хотите использовать |striptags, вы можете разметка разметки из пользовательского интерфейса Views .

Кроме того, не проверяйте в поле configure знак Exclude from display, потому что если вы сделаете это, ваш файл шаблона не будет иметь доступ к этому полю ,

Боковое примечание: вы забыли закрыть div в строке 3.


Альтернативно

{% if row._entity.gettype == 'content_type_machine_name' %}

кредит альтернативного метода: 4K4

ответил No Sssweat 26 Jam1000000amThu, 26 Jan 2017 07:50:17 +030017 2017, 07:50:17

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132