Я знаю, что следующее не работает в ветке, мне было интересно, как этого добиться, я не смог найти ни одного примера этого точного варианта использования, вот код:
{# --------- 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: этого легко достичь, используя слоты компонентов лезвия