Заморочки с Twig в Drupal 8

Я уже писал http://codewebsolution.com.ua/blog/168, какие несравненные преимущества в использовании шаблонизатора Twig несет в себе Drupal 8.

Вместе с тем начинают появляться заморочки, в особенности у тех, кто с шаблонизатором раньше не так тесно контактировал.

Итак, простой пример - основное меню, в котором у активного пункта меню у тега <a> добавляется класс "is_active": <a class="is_active">. Тег <a> вложен в теги элемента списка <li>. В некоторых верстках помечают классом "active" сам элемент списка, т.е. так: <li class="active"><a...>item</a></li>. И тут начинаются грабли:

..........
    {% for item in items %}
      {% set classes = [item.in_active_trail ? 'active',] %}
      <li{{ item.attributes.addClass(classes) }}>
        {{ link(item.title, item.url) }}
..........

Источник: https://www.drupal.org/node/2576827

Или вот еще пример, нужно иконку шрифта fontawesome впихнуть внутрь линка, <a><li class="fa fa-item"></li> item</a>, казалось бы чего тут сложного? Ан, нет. Решение:

...............
    {% for item in items %}
      <li{{ item.attributes.addClass('hidden-xs') }}>
        {% set title %}
          <i class="fa fa-angle-right"></i> {{ item.title }}
        {% endset %}
        {{ link(title, item.url) }}
...............

Вот такой он этот шаблонизатор Twig - неоднозначный))

Share this post

Leave a comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • To post pieces of code, surround them with <code>...</code> tags. For PHP code, you can use <?php ... ?>, which will also colour it based on syntax.
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.