templates/media/postMedias.html.twig line 1

Open in your IDE?
  1. {% macro showImage(media, imgClasses, filter) %}
  2.     {% if vich_uploader_asset(media, 'file') is not null %}
  3.         <img class="{{ imgClasses }}" src="{{ vich_uploader_asset(media, 'file')|imagine_filter(filter) }}" alt="{{ media.description }}"/>
  4.     {% elseif media.file is not null %}
  5.         <img class="{{ imgClasses }}" src="{{ media.file|imagine_filter(filter) }}" alt="{{ media.description }}"/>
  6.     {% endif %}
  7. {% endmacro %}
  8. {% import _self as selfm %}
  9. {# {{ dump(medias) }} #}
  10. {% 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 #}
  11. {% set thumbnails = [] %}
  12. {% set slides = [] %}
  13. {% set documents = [] %}
  14. {% for media in medias %}
  15.     {% if media.role == "thumbnail" and (mediasType == "all" or mediasType == "thumbnails") %}
  16.         {% set thumbnails = thumbnails|merge([media]) %}
  17.     {% elseif media.role == "slide" and (mediasType == "all" or mediasType == "slides") %}
  18.         {% set slides = slides|merge([media]) %}
  19.     {% elseif media.role != "thumbnail" and media.role != "slide" and (mediasType == "all" or mediasType == "documents") %}
  20.         {% set documents = documents|merge([media]) %}
  21.     {% endif %}
  22. {% endfor %}
  23. {% if thumbnails|length >= 1 %}{# on affiche la première des miniatures #}
  24.     <div class="post-medias thumbnails">
  25.         {% set media = thumbnails|first %}
  26.         {% set imgClasses = "thumbnail shadow-sm" %}
  27.         {{ selfm.showImage(media, imgClasses, "thumbnail") }}
  28.     </div>
  29. {% endif %}
  30. {% if slides|length == 1 %}{# une seule image : on l'affiche au format 4/3 #}
  31.     <div class="post-medias slide">
  32.         {% set media = slides|first %}
  33.         {% set imgClasses = "d-block w-100 slide shadow-sm" %}
  34.         {# {{ dump("one slide") }} #}
  35.         {{ selfm.showImage(media, imgClasses, "slide") }}
  36.     </div>
  37. {% elseif slides|length > 1 %}{# plusieurs diapositives : on affiche un diaporama #}
  38.     <div class="post-medias slides">
  39.         <div id="carouselMedias" class="carousel slide" data-ride="carousel">
  40.             <ol class="carousel-indicators">
  41.                 {% for media in slides %}
  42.                     <li data-target="#carouselMedias" data-slide-to="{{ loop.index0 }}" class="active"></li>
  43.                 {% endfor %}
  44.             </ol>
  45.             <div class="carousel-inner">
  46.                 {% set imgClasses = "d-block w-100" %}
  47.                 {% for media in slides %}
  48.                     <div class="carousel-item {% if loop.index0 == 0 %}active{% endif %}">
  49.                         {{ selfm.showImage(media, imgClasses, "slide") }}
  50.                     </div>
  51.                 {% endfor %}
  52.             </div>
  53.             <a class="carousel-control-prev" href="#carouselMedias" role="button" data-slide="prev">
  54.                 <span class="carousel-control-prev-icon" aria-hidden="true"></span>
  55.                 <span class="sr-only">Précédent</span>
  56.             </a>
  57.             <a class="carousel-control-next" href="#carouselMedias" role="button" data-slide="next">
  58.                 <span class="carousel-control-next-icon" aria-hidden="true"></span>
  59.                 <span class="sr-only">Suivant</span>
  60.             </a>
  61.         </div>
  62.     </div>
  63. {% endif %}
  64. {% if documents|length >= 1 %}
  65.     <div class="post-medias documents">
  66.         <h2>Ressources</h2>
  67.         <ul>
  68.             {% for media in documents %}
  69.                 {% if vich_uploader_asset(media, 'file') is not null or media.file is not null %}
  70.                     <li class="ressource">
  71.                         <a href="
  72.                             {% if vich_uploader_asset(media, 'file') is not null or media.file is not null %}
  73.                                 {{ vich_uploader_asset(media, 'file') }}
  74.                             {% else %}
  75.                                 {{ media.file }}
  76.                             {% endif %}
  77.                         " target="_blank">{{ media.description }}</a> 
  78.                     </li>
  79.                 {% endif %}
  80.             {% endfor %}
  81.         </ul>
  82.     </div>
  83. {% endif %}