templates/_snippets/marquee_cards.html.twig line 1

Open in your IDE?
  1. {# Valeurs de base #}
  2. {% set effectiveSectionSettings = showSectionSettings|default(true) ? sectionSettings|default({}) : {} %}
  3. {% set content = effectiveSectionSettings|merge(marqueeCards) %}
  4. {% set datas = {} %}
  5. {% if content is defined and content is not none and content is not empty %}
  6. {# Propriétés de la section #}
  7. {% set datas = datas|merge({'section': section(content)}) %}
  8. {# Propriétés du titre #}
  9. {% set datas = datas|merge({'title': title(content)}) %}
  10. {% set marqueeCardsId = datas.section.id|default('marquee-cards-' ~ random()) %}
  11. {# --- Affichage des éléments --- #}
  12. <section id="{{ marqueeCardsId }}" class="marquee-cards-section">
  13. {% if showSectionSettings|default(true) and attribute(content, 'titleTextSection')|default('') is not empty %}
  14. {{ ('<'~attribute(content, 'typeTitleSection')|default('h2')~' class="marquee-cards-title">')|raw }}
  15. {% if attribute(content, 'pictogramTitleSection')|default('') is not empty %}
  16. <span class="icon">{{ getLucidIcon(attribute(content, 'pictogramTitleSection')) }}</span>
  17. {% endif %}
  18. {{ attribute(content, 'titleTextSection')|raw }}
  19. {{ ('</'~attribute(content, 'typeTitleSection')|default('h2')~'>')|raw }}
  20. {% elseif datas.title.text is defined and datas.title.text is not empty %}
  21. {{ ('<'~datas.title.level|default('h2')~' class="marquee-cards-title">')|raw }}
  22. {{ datas.title.text|raw }}
  23. {{ ('</'~datas.title.level|default('h2')~'>')|raw }}
  24. {% endif %}
  25. {% if content.marqueesLines is defined and content.marqueesLines is not empty %}
  26. {% for line in content.marqueesLines %}
  27. {% if line.marqueesCards is defined and line.marqueesCards is not empty %}
  28. <div class="marquee-cards" data-direction="{{ line.marqueeDirection|default('leftToRight') }}" data-speed="{{ line.marqueeSpeed|default(1) }}" style="margin-bottom: {{ line.marqueeLinesMarginBottom|default(22) }}{{ line.marqueeLinesMarginBottomUnit|default('px') }};">
  29. <div class="marquee">
  30. {% for card in line.marqueesCards %}
  31. {% if card.title is defined and card.title is not empty %}
  32. <span>
  33. <div class="card">
  34. <div class="card-inner">
  35. <div class="card-content-wrapper">
  36. {% if card.svg is defined %}
  37. <div class="card-icon" style="background-color: {{ card.svgColor|default('') }};">
  38. {{ getLucidIcon(card.svg|default('award')) }}
  39. </div>
  40. {% endif %}
  41. <div class="card-text-content">
  42. {% if card.title is defined and card.title is not empty %}
  43. <div class="card-title">{{ card.title|raw }}</div>
  44. {% endif %}
  45. {% if card.content is defined and card.content is not empty %}
  46. <div class="card-content">{{ card.content|raw }}</div>
  47. {% endif %}
  48. </div>
  49. </div>
  50. {% if card.mention is defined and card.mention is not empty %}
  51. <div class="card-mention">*{{ card.mention|raw }}</div>
  52. {% endif %}
  53. </div>
  54. </div>
  55. </span>
  56. {% endif %}
  57. {% endfor %}
  58. </div>
  59. </div>
  60. {% endif %}
  61. {% endfor %}
  62. {% endif %}
  63. </section>
  64. {# Le JavaScript du marquee cards est maintenant géré par snippets/marquee-cards.js #}
  65. {% endif %}
  66. {# Mise à jour du CSS lié à la section #}
  67. <style>
  68. {% include '_snippets/components/_section.html.twig' %}
  69. {% include '_snippets/components/_title.html.twig' %}
  70. /* ========================================
  71. MARQUEE CARDS STYLES
  72. ======================================== */
  73. section#{{marqueeCardsId}}
  74. {
  75. --marquee-cards-margin-right: {{content.marqueesLines[0].marqueeCardsMarginRight|default(20)}}
  76. {{content.marqueesLines[0].marqueeCardsMarginRightUnit|default('px')}}
  77. ;
  78. }
  79. </style>