templates/_snippets/thumbnails.html.twig line 1

Open in your IDE?
  1. {# ------------------------------------------------------------------------ #}
  2. {# ----------------------------- PARAMÉTRAGES ----------------------------- #}
  3. {# ------------------------------------------------------------------------ #}
  4. {% set id = 'thumbnails-' ~ random() %}
  5. {% set sectionStyles = {} %}
  6. {% if thumbnails.sectionMinHeight is not none and thumbnails.sectionMinHeight != 0 %}
  7. {% set sectionStyles = sectionStyles|merge({'min-height': thumbnails.sectionMinHeight~thumbnails.sectionMinHeightUnit|default('px')}) %}
  8. {% endif %}
  9. {% if thumbnails.sectionPaddingTop is not none or thumbnails.sectionPaddingRight is not none or thumbnails.sectionPaddingBottom is not none or thumbnails.sectionPaddingLeft is not none %}
  10. {% set sectionStyles = sectionStyles|merge({'padding': thumbnails.sectionPaddingTop|default(0)~thumbnails.sectionPaddingUnit|default('px')~' '~thumbnails.sectionPaddingRight|default(0)~thumbnails.sectionPaddingUnit|default('px')~' '~thumbnails.sectionPaddingBottom|default(0)~thumbnails.sectionPaddingUnit|default('px')~' '~thumbnails.sectionPaddingLeft|default(0)~thumbnails.sectionPaddingUnit|default('px')}) %}
  11. {% endif %}
  12. {% if thumbnails.noBackgroundCheckbox == false %}
  13. {% if thumbnails.backgroundCheckbox == true %}
  14. {% if thumbnails.backgroundGradientCheckbox == true %}
  15. {% set sectionStyles = sectionStyles|merge({'background': 'linear-gradient('~thumbnails.backgroundGradientDirection|default('to right')~', '~thumbnails.backgroundGradientColor1|default('#000')~' '~thumbnails.backgroundGradientColor1Position|default(0)~'%, '~thumbnails.backgroundGradientColor2|default('#fff')~' '~thumbnails.backgroundGradientColor2Position|default(100)~'%)'}) %}
  16. {% else %}
  17. {% if thumbnails.backgroundColor is not none and thumbnails.backgroundColor != '' %}
  18. {% set sectionStyles = sectionStyles|merge({'background-color': thumbnails.backgroundColor}) %}
  19. {% endif %}
  20. {% endif %}
  21. {% else %}
  22. {% if thumbnails.backgroundImage is not none and thumbnails.backgroundImage.url != '' %}
  23. {% set sectionStyles = sectionStyles|merge({'background': 'url('~thumbnails.backgroundImage.url~') no-repeat', 'background-size': 'cover', 'position': 'relative'}) %}
  24. {% endif %}
  25. {% endif %}
  26. {% endif %}
  27. {# Styles pour le filtre d'image de fond (::after) #}
  28. {% set backgroundFilterStyles = {} %}
  29. {% if thumbnails.noBackgroundCheckbox == false and thumbnails.backgroundCheckbox == false %}
  30. {% if thumbnails.backgroundFilter is not none and thumbnails.backgroundFilter != '' %}
  31. {% set backgroundFilterStyles = backgroundFilterStyles|merge({'background-color': thumbnails.backgroundFilter}) %}
  32. {% endif %}
  33. {% if thumbnails.backgroundFilterOpacity is not none %}
  34. {% set backgroundFilterStyles = backgroundFilterStyles|merge({'opacity': thumbnails.backgroundFilterOpacity}) %}
  35. {% endif %}
  36. {% endif %}
  37. {# ------------------------------------------------------------------------ #}
  38. {# ------------------------------- TEMPLATE ------------------------------- #}
  39. {# ------------------------------------------------------------------------ #}
  40. {% if true %}<section id="{{ id }}" class="thumbnails-section">
  41. <div class="thumbnails">
  42. {% for thumbnail in thumbnails.thumbnails %}
  43. {% set linkType =
  44. thumbnail.thumbnailIsLink
  45. ? (thumbnail.thumbnailIsInternalLink
  46. ? 'internal'
  47. : 'external'
  48. )
  49. : 'nolink'
  50. %}
  51. {% if linkType == 'internal' %}
  52. <sulu-link href="{{ thumbnail.thumbnailInternalLink }}" class="element">
  53. {% elseif linkType == 'external' %}
  54. <a target="_blank" class="element" href="{{ thumbnail.thumbnailExternalLink }}">
  55. {% endif %}
  56. <div class="thumbnail animation2">
  57. {% if thumbnails.isIcon %}
  58. <div class="icon">{{ getLucidIcon(thumbnail.thumbnailIcon) }}</div>
  59. {% endif %}
  60. <div class="content">
  61. <div class="title">{{ thumbnail.thumbnailTitle }}</div>
  62. <div class="description">
  63. {% if thumbnail.isImagesThumbnail is defined and thumbnail.isImagesThumbnail == true %}
  64. <div class="images">
  65. {% for image in thumbnail.thumbnailImages %}
  66. <img src="{{ image.url }}" ">
  67. {% endfor %}
  68. </div>
  69. {% else %}
  70. {{ thumbnail.thumbnailContent|raw }}
  71. {% endif %}
  72. </div>
  73. </div>
  74. </div>
  75. {% if linkType == 'internal' %}
  76. </sulu-link>
  77. {% elseif linkType == 'external' %}
  78. </a>
  79. {% endif %}
  80. {% endfor %}
  81. </div>
  82. </section>{% endif %}
  83. {# ------------------------------------------------------------------------ #}
  84. {# ------------------------------ JAVASCRIPT ------------------------------ #}
  85. {# ------------------------------------------------------------------------ #}
  86. {% if true %}<script>
  87. </script>{% endif %}
  88. {# ------------------------------------------------------------------------ #}
  89. {# -------------------------------- STYLES -------------------------------- #}
  90. {# ------------------------------------------------------------------------ #}
  91. {% if true %}<style>
  92. section#{{ id }} {
  93. /* thumbnails */
  94. --row-gap-thumbnails: {{ thumbnails.thumbnailsRowGap|default(0)~thumbnails.thumbnailsRowGapUnit|default('px') }};
  95. --column-gap-thumbnails: {{ thumbnails.thumbnailsColumnGap|default(0)~thumbnails.thumbnailsColumnGapUnit|default('px') }};
  96. --justify-content-thumbnails: {{ thumbnails.thumbnailsAlignment|default('center') }};
  97. /* thumbnail */
  98. --border-radius-thumbnail: {{ thumbnails.thumbnailsBorderRadius|default('0')~thumbnails.thumbnailsBorderRadiusUnit|default('px') }};
  99. --border-thumbnail: {{ thumbnails.thumbnailBordersSize|default('0')~thumbnails.thumbnailBordersSizeUnit|default('px')~' solid '~thumbnails.thumbnailBordersColor|default('inherit') }};
  100. --background-thumbnail: {{ thumbnails.thumbnailsBackgroundColor|default('transparent') }};
  101. --width-thumbnail: {{ thumbnails.thumbnailsWidth|default('100')~ thumbnails.thumbnailsWidthUnit|default('%') }};
  102. --padding-thumbnail: {{ thumbnails.thumbnailsPaddingTopBottom|default(0)~thumbnails.thumbnailsPaddingTopBottomUnit|default('px')~' '~thumbnails.thumbnailsPaddingLeftRight|default(0)~thumbnails.thumbnailsPaddingLeftRightUnit|default('px') }};
  103. /* icon */
  104. --padding-icon-div: {{ thumbnails.thumbnailsIconPadding|default('12px') }};
  105. --border-radius-icon-div: {{ thumbnails.thumbnailsIconBorderRadius|default('0')~thumbnails.thumbnailsIconBorderRadiusUnit|default('px') }};
  106. --background-color-icon-div: {{ thumbnails.thumbnailsIconBackgroundColor|default('inherit') }};
  107. --color-icon: {{ thumbnails.thumbnailsIconColor|default('inherit') }};
  108. --width-icon: {{ thumbnails.thumbnailsIconSize|default('1')~thumbnails.thumbnailsIconSizeUnit|default('rem') }};
  109. --stroke-width-svg-path: {{ thumbnails.thumbnailsIconWeight|default('2') }};
  110. /* thumbnail title */
  111. --color-title: {{ thumbnails.thumbnailsTitleColor|default('inherit') }};
  112. --font-size-title: {{ thumbnails.thumbnailsTitleSize|default('1')~thumbnails.thumbnailsTitleSizeUnit|default('rem') }};
  113. --font-weight-title: {{ thumbnails.thumbnailsTitleWeight|default('normal') }};
  114. --margin-bottom-title: {{ thumbnails.thumbnailsTitleMarginBottom|default(0)~thumbnails.thumbnailsTitleMarginBottomUnit|default('px') }};
  115. /* thumbnail description */
  116. --color-description: {{ thumbnails.thumbnailsTextColor|default('inherit') }};
  117. --font-size-description: {{ thumbnails.thumbnailsTextSize|default('1')~thumbnails.thumbnailsTextSizeUnit|default('rem') }};
  118. --font-weight-description: {{ thumbnails.thumbnailsTextWeight|default('normal') }};
  119. }
  120. section#{{ id }} {
  121. {{ sectionStyles|map((value, key) => key ~ ':' ~ value)|join('; ') }};
  122. }
  123. {% if backgroundFilterStyles is not empty %}
  124. section#{{ id }}::after {
  125. content: "";
  126. position: absolute;
  127. top: 0;
  128. left: 0;
  129. width: 100%;
  130. height: 100%;
  131. z-index: 1;
  132. {{ backgroundFilterStyles|map((value, key) => key ~ ':' ~ value)|join('; ') }};
  133. }
  134. {% endif %}
  135. </style>{% endif %}