Блок переопределения для l oop дочернего компонента с встраиванием Twig - PullRequest
0 голосов
/ 18 апреля 2020

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

{# --------- page.twig --------- (level 1) #}
{% set slides = [
  [ 'img' => 'x', 'id' => 'a', width => 100 ],
  [ 'img' => 'y', 'id' => 'b', width => 200 ],
  [ 'img' => 'z', 'id' => 'c', width => 300 ],
]; %}

{% embed 'gallery' with { slides: slides } only %}
  {% block slide_footer %}
    in this page show dynamic footer, this is slide: {{ slide.id }}
  {% endblock %}
{% endembed %}


{# --------- gallery.twig ------ (level 2) #}
<div class="gallery">
  {% for slide in slides %}
    <div>
      <img src="{{ slide.img }}" width="{{ slide.width }}">
    </div>
  {% endfor %}

  {% embed 'lightbox' with { slides: slides } only %}
    {% block slide_footer %}{% endblock %}
  {% endembed %}
</div>


{# --------- lightbox.twig ------ (level 3) #}
<div class="lightbox">
  {% for slide in slides %}
    <div>
      <img src="{{ slide.img }}" width="{{ slide.width * 2 }}">
      {% block slide_footer %}
        footer content to be overridden from parent-parent
      {% endblock %}
    </div>
  {% endfor %}
</div>

Если это не так Ясно, чего я хотел бы добиться - это иметь пользовательский slide_foot с доступом к текущему slide объекту в каждом отдельном page.twig, где я хочу использовать gallery.twig компонент

, спасибо, если у вас есть какие-либо идея!

ps: этого легко достичь, используя слоты компонентов лезвия

...