Сравните переменную имени со строковым значением в шаблоне ветки Drupal 8
Я работаю со страницей шаблона термина таксономии в Drupal 8, и мне нужно иметь возможность показывать конкретный контент, основываясь исключительно на термине таксономии, который заполняет контент страницы. Я использую шаблон taxonomy-term.twig.html в качестве отправной точки, но мне не повезло, сравнивая строковое значение с переменной {{ name }}. Вот код, который у меня есть:
<section{{ attributes.addClass(classes)}}>
{% if 'general' in name %}
<img class="promo-image" src="http://placehold.it/150x150" alt="promo">
<h3 class="promo-title">Promo title text</h3>
<p class="promo-copy">lorem ipsum dolor set amet</p>
<div class="links">
<a href="/resources" class="btn outline-black-transparent">Learn more</a>
</div>
{% endif %}
</section>
Если я выведу переменную name как обычно {{ name }}, она напечатает имя тега на странице, но я не могу понять, как сравнить значение с чем-либо. Я также пробовал прямой маршрут if equals, но похоже, что переменная name является массивом.
1 ответ
Поскольку переменная name является массивом, и мне нужно было только первое добавленное мной значение:
{%
set tag = name['#items'].0.value
%}
Затем изменил оператор if на:
{% if tag == 'text' %}
<section{{ attributes.addClass(classes)}}>
<img class="promo-image" src="http://placehold.it/150x150" alt="promo">
<h3 class="promo-title">Promo title text</h3>
<p class="promo-copy">lorem ipsum dolor set amet</p>
<div class="links">
<a href="/resources" class="btn outline-black-transparent">Learn more</a>
</div>
</section>
{% endif %}
Теперь шаблон работает так, как я хотел.