{% macro showImage(media, imgClasses, filter) %}
{% if vich_uploader_asset(media, 'file') is not null %}
<img class="{{ imgClasses }}" src="{{ vich_uploader_asset(media, 'file')|imagine_filter(filter) }}" alt="{{ media.description }}"/>
{% elseif media.file is not null %}
<img class="{{ imgClasses }}" src="{{ media.file|imagine_filter(filter) }}" alt="{{ media.description }}"/>
{% endif %}
{% endmacro %}
{% import _self as selfm %}
{# {{ dump(medias) }} #}
{% if mediasType is not defined or mediasType not in ['thumbnails', 'slides', 'documents'] %}{% set mediasType = "all" %}{% endif %}{# mediasType est de type all, thumbnails, slides ou documents #}
{% set thumbnails = [] %}
{% set slides = [] %}
{% set documents = [] %}
{% for media in medias %}
{% if media.role == "thumbnail" and (mediasType == "all" or mediasType == "thumbnails") %}
{% set thumbnails = thumbnails|merge([media]) %}
{% elseif media.role == "slide" and (mediasType == "all" or mediasType == "slides") %}
{% set slides = slides|merge([media]) %}
{% elseif media.role != "thumbnail" and media.role != "slide" and (mediasType == "all" or mediasType == "documents") %}
{% set documents = documents|merge([media]) %}
{% endif %}
{% endfor %}
{% if thumbnails|length >= 1 %}{# on affiche la première des miniatures #}
<div class="post-medias thumbnails">
{% set media = thumbnails|first %}
{% set imgClasses = "thumbnail shadow-sm" %}
{{ selfm.showImage(media, imgClasses, "thumbnail") }}
</div>
{% endif %}
{% if slides|length == 1 %}{# une seule image : on l'affiche au format 4/3 #}
<div class="post-medias slide">
{% set media = slides|first %}
{% set imgClasses = "d-block w-100 slide shadow-sm" %}
{# {{ dump("one slide") }} #}
{{ selfm.showImage(media, imgClasses, "slide") }}
</div>
{% elseif slides|length > 1 %}{# plusieurs diapositives : on affiche un diaporama #}
<div class="post-medias slides">
<div id="carouselMedias" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
{% for media in slides %}
<li data-target="#carouselMedias" data-slide-to="{{ loop.index0 }}" class="active"></li>
{% endfor %}
</ol>
<div class="carousel-inner">
{% set imgClasses = "d-block w-100" %}
{% for media in slides %}
<div class="carousel-item {% if loop.index0 == 0 %}active{% endif %}">
{{ selfm.showImage(media, imgClasses, "slide") }}
</div>
{% endfor %}
</div>
<a class="carousel-control-prev" href="#carouselMedias" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Précédent</span>
</a>
<a class="carousel-control-next" href="#carouselMedias" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Suivant</span>
</a>
</div>
</div>
{% endif %}
{% if documents|length >= 1 %}
<div class="post-medias documents">
<h2>Ressources</h2>
<ul>
{% for media in documents %}
{% if vich_uploader_asset(media, 'file') is not null or media.file is not null %}
<li class="ressource">
<a href="
{% if vich_uploader_asset(media, 'file') is not null or media.file is not null %}
{{ vich_uploader_asset(media, 'file') }}
{% else %}
{{ media.file }}
{% endif %}
" target="_blank">{{ media.description }}</a>
</li>
{% endif %}
{% endfor %}
</ul>
</div>
{% endif %}